source: trunk/debathena/meta/athena-libraries/debian/rules @ 22752

Revision 22752, 3.3 KB checked in by ghudson, 16 years ago (diff)
Fix a debthena-athena-libraries build failure on dapper-amd64. * debathena/meta/athena-libraries/debian/rules: Don't run aptitude with no arguments.
  • Property svn:executable set to *
Line 
1#!/usr/bin/make -f
2
3DEB_AUTO_UPDATE_DEBIAN_CONTROL = 1
4include /usr/share/cdbs/1/rules/debhelper.mk
5
6APT_CACHE = $(CURDIR)/debian/apt-cache
7APT_FILE_CACHE = $(CURDIR)/debian/apt-file-cache
8TMPEXTRACT = $(CURDIR)/debian/tmpextract
9TMPCONTROL = $(CURDIR)/debian/tmpcontrol
10
11APTITUDE_LOCKFILE = $(CURDIR)/debian/aptitude-lockfile
12APTITUDE_STATE = $(CURDIR)/debian/aptitude-state
13APTITUDE = aptitude -o 'Aptitude::LockFile=$(APTITUDE_LOCKFILE)' -o 'Dir::Cache=$(APT_CACHE)' -o 'Dir::Aptitude::state=$(APTITUDE_STATE)' -o "Debug::NoLocking=yes"
14
15ATHENA_SHLIBS = $(shell ATHENA_SYS=$$(machtype -S) ATHENA_SYS_COMPAT=$$(machtype -C) athdir . shlibs)
16
17LIBDIRS := $(patsubst %/,%,$(strip \
18            $(shell strings /lib*/ld-linux*.so.2 | grep '^/.*lib') \
19            $(shell grep -h '^/' /etc/ld.so.conf /etc/ld.so.conf.d/*.conf) \
20        ))
21
22$(APT_FILE_CACHE):
23        mkdir -p $@
24        apt-file -c $@ update
25
26empty =
27
28$(APT_CACHE): $(ATHENA_SHLIBS) $(APT_FILE_CACHE) $(APTITUDE_STATE)
29        mkdir -p $@ $@/archives $@/archives/partial
30        apt-file --verbose -y -c $(APT_FILE_CACHE) -F -l -x search "^(?:$(subst $(empty) /,|, $(LIBDIRS)))/(?:$$( \
31            perl -0pe 's/ .*//mg; s/(\W)/\\$$1/g; s/\\\n$$//; s/\\\n/|/g' < $< \
32        ))" | \
33            sort -u | \
34            perl -pe 'chomp; s/(\W)/\\$$1/g; s/^(.*)$$/~n^$$1\$$!~Rconflicts:(~Dreplaces:(~n^$$1\$$~VCANDIDATE)~Dconflicts:(~n^$$1\$$~VCANDIDATE))/; s/$$/\0/' | \
35            xargs -0 -r -t $(APTITUDE) -F '%p' search | \
36            (cd $@/archives; xargs -r -t $(APTITUDE) download)
37
38$(APTITUDE_STATE):
39        mkdir -p $@
40
41debian/libs: $(ATHENA_SHLIBS) $(APT_CACHE)
42        : >| $@
43        for pkg in $(APT_CACHE)/archives/*.deb; do \
44            echo "$$(basename $$pkg)" >&2; \
45            rm -rf $(TMPCONTROL) $(TMPEXTRACT); \
46            mkdir -p $(TMPCONTROL) $(TMPEXTRACT); \
47            dpkg-deb -e "$$pkg" $(TMPCONTROL)/; \
48            [ -e $(TMPCONTROL)/shlibs ] || continue; \
49            dpkg-deb -x "$$pkg" $(TMPEXTRACT)/; \
50            perl -pe 's/^((\S+)\.so\.(\S+))\s+(\S+)$$/$$1 $$4 $$2 $$3/ or s/^((\S+)-(\S+)\.so)\s+(\S+)$$/$$1 $$4 $$2 $$3/ or $$_ = ""' < $< | \
51                while read lib format libname soname; do \
52                    for dir in $(LIBDIRS); do \
53                        if [ -e "$(TMPEXTRACT)/$$dir/$$lib" ] && \
54                            [ "$$(objdump -a -- "$(TMPEXTRACT)/$$dir/$$lib" | \
55                                sed -n 's/^.*file format *\(.*\)$$/\1/ p')" = "$$format" ]; then \
56                            if grep -q "^\\($$libname\\)[[:space:]]\\+\\($$soname\)[[:space:]]\\+" $(TMPCONTROL)/shlibs; then \
57                                sed -n "s/^\\($$libname\\)[[:space:]]\\+\\($$soname\)[[:space:]]\\+/\\1 \\2 / p" $(TMPCONTROL)/shlibs; \
58                            else \
59                                echo "Warning: fabricating shlibs line for $$libname $$soname" >&2; \
60                                echo "$$libname $$soname $$(sed -n 's/^Package:[[:space:]]*// p' $(TMPCONTROL)/control)"; \
61                            fi | \
62                                sed -e 's/ BROKEN_DEP_ON_OBSOLETE_DB2$$/ libdb2 (>= 2:2.7.7.0-1)/' \
63                                    -e 's/ libgl1.*$$/ libgl1/' >> $@; \
64                            break; \
65                        fi \
66                    done \
67                done; \
68            rm -rf $(TMPCONTROL) $(TMPEXTRACT); \
69        done
70
71common-build-arch:: debian/libs
72
73debathena-athena-libraries-substvars: debian/libs
74        ( \
75            echo -n "debathena-athena-libraries:Recommends="; \
76            cat $< | sed 's/^[^[:space:]]\+[[:space:]]\+[^[:space:]]\+[[:space:]]\+//' | sort -u | tr '\n' ','; \
77            echo; \
78        ) >> debian/debathena-athena-libraries.substvars
79
80binary-predeb/debathena-athena-libraries:: debathena-athena-libraries-substvars
81
82clean::
83        rm -f debian/libs $(APTITUDE_LOCKFILE)
84        rm -rf $(APT_CACHE) $(APT_FILE_CACHE) $(TMPCONTROL) $(TMPEXTRACT) $(APTITUDE_STATE)
Note: See TracBrowser for help on using the repository browser.