From f8d2cffce09b9990689a1f33b3abcc153482f42b Mon Sep 17 00:00:00 2001 From: dequis Date: Wed, 11 Apr 2018 02:58:33 -0300 Subject: debian: turn -common and -dev into arch:any to safely use --link-doc This started with trying to remove something that says "remove the hack below once Hardy and Lenny are deprecated". Hardy and Lenny have been deprecated for years, this should be easy, right? Turns out that the symlink stuff we were doing can result in broken packages with binNMU, see debbug#767839. This is also documented in the dh_installdocs man page: > CAVEAT 2: The use of --link-doc should only be done when the packages > have same "architecture" type. A link from a architecture independent > package to a architecture dependent package (or vice versa) will not > work. Since compat 10, debhelper will actively reject unsupported > combinations. And we were doing essentially the same wrong thing but manually. The easiest way to solve this is to stop mixing arch:any and arch:all, and to make everything arch:any. Let's hope this is as easy as it looks. Thanks to bunk, nthykier and olly from #debian-devel for help with this. --- debian/control | 12 ++++++------ debian/rules | 17 ++++------------- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/debian/control b/debian/control index 9f7db6db..5a4b39ca 100644 --- a/debian/control +++ b/debian/control @@ -11,7 +11,7 @@ Vcs-Browser: https://github.com/bitlbee/bitlbee Package: bitlbee Architecture: any -Depends: ${misc:Depends}, ${shlibs:Depends}, debianutils (>= 1.16), bitlbee-common (= ${source:Version}) +Depends: ${misc:Depends}, ${shlibs:Depends}, debianutils (>= 1.16), bitlbee-common (= ${binary:Version}) Conflicts: bitlbee-libpurple Replaces: bitlbee-libpurple Description: IRC to other chat networks gateway (default version) @@ -21,7 +21,7 @@ Description: IRC to other chat networks gateway (default version) Package: bitlbee-libpurple Architecture: any -Depends: ${misc:Depends}, ${shlibs:Depends}, debianutils (>= 1.16), bitlbee-common (= ${source:Version}) +Depends: ${misc:Depends}, ${shlibs:Depends}, debianutils (>= 1.16), bitlbee-common (= ${binary:Version}) Conflicts: bitlbee Replaces: bitlbee Description: IRC to other chat networks gateway (using libpurple) @@ -37,7 +37,7 @@ Description: IRC to other chat networks gateway (using libpurple) If you don't need the extra features, it's better to use the built-in code. Package: bitlbee-common -Architecture: all +Architecture: any Depends: ${misc:Depends}, adduser Replaces: bitlbee Description: IRC to other chat networks gateway (common files/docs) @@ -49,8 +49,8 @@ Description: IRC to other chat networks gateway (common files/docs) bitlbee-libpurple. Package: bitlbee-dev -Architecture: all -Depends: ${misc:Depends}, bitlbee (>= ${source:Version}) | bitlbee-libpurple (>= ${source:Version}), bitlbee (<< ${source:Version}.1~) | bitlbee-libpurple (<< ${source:Version}.1~), bitlbee-common (= ${source:Version}) +Architecture: any +Depends: ${misc:Depends}, bitlbee (= ${binary:Version}) | bitlbee-libpurple (= ${binary:Version}), bitlbee-common (= ${binary:Version}) Description: IRC to other chat networks gateway (dev files) This program can be used as an IRC server which forwards everything you say to people on other chat networks: Jabber (which includes Google @@ -60,7 +60,7 @@ Description: IRC to other chat networks gateway (dev files) Package: bitlbee-plugin-otr Architecture: any -Depends: ${misc:Depends}, ${shlibs:Depends}, bitlbee (= ${binary:Version}) | bitlbee-libpurple (= ${binary:Version}), bitlbee-common (= ${source:Version}) +Depends: ${misc:Depends}, ${shlibs:Depends}, bitlbee (= ${binary:Version}) | bitlbee-libpurple (= ${binary:Version}), bitlbee-common (= ${binary:Version}) Description: IRC to other chat networks gateway (OTR plugin) This program can be used as an IRC server which forwards everything you say to people on other chat networks: Jabber (which includes Google diff --git a/debian/rules b/debian/rules index 08111792..4fabddfa 100755 --- a/debian/rules +++ b/debian/rules @@ -34,10 +34,7 @@ CONFIGURE_OVERRIDES:=CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAG HAS_DH_SYSTEMD:=$(shell dpkg-query -W -f='$${Status}' dh-systemd 2>/dev/null | grep -c "ok installed") -# No difference at the build stage so just call main build target. -# (Well indep could be docs-only but we prebuild them plus it's really -# not that much work.) -build-arch build-indep: build +build-arch: build build: build-stamp build-stamp: @@ -97,10 +94,7 @@ binary-common: dh_installchangelogs doc/CHANGES dh_installexamples - dh_installdocs #--link-doc=bitlbee-common - # TODO: Restore --link-doc up here and remove the hack below once - # Hardy and Lenny are deprecated. - for p in bitlbee bitlbee-libpurple bitlbee-dev bitlbee-plugin-otr; do rm -r debian/$$p/usr/share/doc/$$p && ln -s bitlbee-common debian/$$p/usr/share/doc/$$p || true; done + dh_installdocs --link-doc=bitlbee-common dh_installdebconf ifeq ($(HAS_DH_SYSTEMD),1) dh_systemd_enable -p bitlbee-common --no-enable bitlbee.socket @@ -122,14 +116,11 @@ endif dh_md5sums dh_builddeb -binary-indep: build install - DH_OPTIONS=-i $(MAKE) -f debian/rules binary-common - binary-arch: build install DH_OPTIONS=-a $(MAKE) -f debian/rules binary-common binary-%: build install DH_OPTIONS=-p$* $(MAKE) -f debian/rules binary-common -binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary-common binary install +binary: binary-arch +.PHONY: build clean binary-arch binary-common binary install -- cgit v1.2.3