chiark / gitweb /
configure.ac, debian/: Set up correct dependencies for GStreamer.
authorMark Wooding <mdw@distorted.org.uk>
Tue, 10 Jul 2018 10:38:33 +0000 (11:38 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Tue, 10 Jul 2018 11:11:11 +0000 (12:11 +0100)
This involves an unpleasant back-channel from the configure script to
the Debian packaging machinery to explain which GStreamer version it
chose, so that we can set the proper package names.

configure.ac
debian/Makefile.am
debian/control
debian/rules

index 306b338..1ba7144 100644 (file)
@@ -455,6 +455,7 @@ AH_TEMPLATE([HAVE_GSTREAMER_0_10],
 AH_TEMPLATE([HAVE_GSTREAMER_1_0],
     [Define if building against GStreamer 1.0])
 
+mdw_gstreamer_version=nil
 for i in $want_gstreamer; do
   case $i in
     0.10) v=0.10 V=0_10 ;;
@@ -466,6 +467,7 @@ for i in $want_gstreamer; do
       [have_gstreamer=$v], [have_gstreamer=no])
   case $have_gstreamer in no) continue ;; esac
   AC_DEFINE_UNQUOTED([HAVE_GSTREAMER_$V], [1])
+  mdw_gstreamer_version=$v
   break
 done
 
@@ -952,6 +954,16 @@ AC_CONFIG_FILES([Makefile
                 tests/Makefile])
 AC_OUTPUT
 
+# A hack: communicate our selection of GStreamer version back to the
+# Debian packaging machinery so that it can build the right dependencies.
+echo '### extra control substitutions for Debian' >debian/substvars.auto.new
+case $mdw_gstreamer_version in
+  nil) ;;
+  *) echo >>debian/substvars.auto.new \
+        "disorder:GstVersion=gstreamer$mdw_gstreamer_version" ;;
+esac
+mv debian/substvars.auto.new debian/substvars.auto
+
 if test $GCC = yes && test "$gcc_werror" = ''; then
   AC_MSG_WARN([building without -Werror])
 fi
index 3a3bb6a..7c1ccf8 100644 (file)
@@ -43,3 +43,5 @@ EXTRA_DIST += \
 
 EXTRA_DIST += \
        disobedience.doc-base disobedience.install disobedience.menu
+
+DISTCLEANFILES = substvars.auto substvars.auto.new
index cc37cac..fd78ad0 100644 (file)
@@ -57,7 +57,8 @@ Package: disorder-gstreamer
 Architecture: any
 Section: sound
 Priority: extra
-Depends: ${shlibs:Depends}
+Depends: ${shlibs:Depends}, ${disorder:GstVersion}-plugins-base, ${disorder:GstVersion}-plugins-good
+Recommends: ${disorder:GstVersion}-plugins-ugly
 Enhances: disorder-server
 Description: GStreamer-based audio decoder for DisOrder
  DisOrder is a software jukebox.  It can play OGG, MP3, WAV and FLAC files,
index cdb6991..435f6e2 100755 (executable)
@@ -41,6 +41,12 @@ override_dh_installdocs:
        dh_installdocs $(addprefix -N, $(DOCLINK_PKGS))
 
 ###--------------------------------------------------------------------------
+### Set up the proper dependencies for `disorder-gstreamer'.
+
+override_dh_gencontrol:
+       dh_gencontrol -- -Tdebian/build/debian/substvars.auto
+
+###--------------------------------------------------------------------------
 ### And just let Debhelper do the rest of the work.
 
 %:; dh $@ $(DH_OPTIONS)