[SCM] libav/master: Properly set the library paths for multiarch and shared libs in debian/*.install instead of using brace expansion and asterisks.

fabian-guest at users.alioth.debian.org fabian-guest at users.alioth.debian.org
Fri Jan 13 16:08:44 UTC 2012


The following commit has been merged in the master branch:
commit 7415b3bd0fdb7188c7c5cc8802f92aeb7890a0d3
Author: Fabian Greffrath <fabian+debian at greffrath.com>
Date:   Fri Jan 13 17:07:53 2012 +0100

    Properly set the library paths for multiarch and shared libs in debian/*.install instead of using brace expansion and asterisks.
    
    The debian/*.install files for the shared library packages get dynamically
    generated at build time with the proper multipath library paths set.
    On archs that support optimized shared libraries, the special path to these
    libraries for the dynamic linker is also set.
    
    NOTE: This currently only works for *one* additional optimized shared
    library per arch!

diff --git a/debian/confflags b/debian/confflags
index f8f4869..8d8e786 100644
--- a/debian/confflags
+++ b/debian/confflags
@@ -175,14 +175,16 @@ shared_build_confflags += --disable-static
 
 ## specific to arm architectures
 # Configuration flags for the optimised shared libraries
+vfp_shlibdir := vfp
 vfp_build_confflags += $(confflags)
-vfp_build_confflags += --shlibdir=/usr/lib/$(DEB_HOST_MULTIARCH)/vfp
+vfp_build_confflags += --shlibdir=/usr/lib/$(DEB_HOST_MULTIARCH)/$(vfp_shlibdir)
 vfp_build_confflags += --enable-shared
 vfp_build_confflags += --disable-static
 vfp_build_confflags += --extra-cflags="-mfpu=vfp $(float_abi)"
 # NB: NEON always implies v7+ and Libav's NEON implementation requires VFP
+neon_shlibdir := neon/vfp
 neon_build_confflags += $(confflags)
-neon_build_confflags += --shlibdir=/usr/lib/$(DEB_HOST_MULTIARCH)/neon/vfp
+neon_build_confflags += --shlibdir=/usr/lib/$(DEB_HOST_MULTIARCH)/$(neon_shlibdir)
 # the NEON pass now requires ubfx which was introduced in armv6t2; we need to
 # enable at least armv6t2 for the NEON pass to build, but NEON implies armv7-a
 # so pass armv7-a if it's not already enabled
@@ -195,17 +197,19 @@ neon_build_confflags += --disable-static
 
 ## i386 architecture specific
 # Configuration flags for the optimized shared libraries
+cmov_shlibdir := i686/cmov
 cmov_build_confflags += $(confflags)
 cmov_build_confflags += $(nooptflags)
-cmov_build_confflags += --shlibdir=/usr/lib/$(DEB_HOST_MULTIARCH)/i686/cmov
+cmov_build_confflags += --shlibdir=/usr/lib/$(DEB_HOST_MULTIARCH)/$(cmov_shlibdir)
 cmov_build_confflags += --cpu='i686'
 cmov_build_confflags += --enable-shared
 cmov_build_confflags += --disable-static
 
 ## powerpc architecture specific
 # Configuration flags for the optimized shared libraries
+altivec_shlibdir := altivec
 altivec_build_confflags += $(confflags)
-altivec_build_confflags += --shlibdir=/usr/lib/$(DEB_HOST_MULTIARCH)/altivec
+altivec_build_confflags += --shlibdir=/usr/lib/$(DEB_HOST_MULTIARCH)/$(altivec_shlibdir)
 altivec_build_confflags += --cpu='g4'
 altivec_build_confflags += --enable-shared
 altivec_build_confflags += --disable-static
@@ -213,8 +217,9 @@ altivec_build_confflags += --enable-altivec
 
 ## sparc architecture specific
 # Configuration flags for the optimized shared libraries
+vis_shlibdir := v9
 vis_build_confflags += $(confflags)
-vis_build_confflags += --shlibdir=/usr/lib/$(DEB_HOST_MULTIARCH)/v9
+vis_build_confflags += --shlibdir=/usr/lib/$(DEB_HOST_MULTIARCH)/$(vis_shlibdir)
 vis_build_confflags += --cpu='sparc64'
 vis_build_confflags += --enable-shared
 vis_build_confflags += --disable-static
diff --git a/debian/libavcodec-dev.install b/debian/libavcodec-dev.install
deleted file mode 100644
index 57ecd96..0000000
--- a/debian/libavcodec-dev.install
+++ /dev/null
@@ -1,4 +0,0 @@
-usr/include/libavcodec
-usr/lib/*/libavcodec.a
-usr/lib/*/{,*/,*/*/}libavcodec.so
-usr/lib/*/pkgconfig/libavcodec.pc
diff --git a/debian/libavcodec-dev.install.in b/debian/libavcodec-dev.install.in
new file mode 100644
index 0000000..69ce957
--- /dev/null
+++ b/debian/libavcodec-dev.install.in
@@ -0,0 +1,4 @@
+usr/include/libavcodec
+usr/lib/@DEB_HOST_MULTIARCH@/libavcodec.a
+usr/lib/@DEB_HOST_MULTIARCH_OPT@/libavcodec.so
+usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/libavcodec.pc
diff --git a/debian/libavcodec53.install b/debian/libavcodec53.install
deleted file mode 100644
index 27da00e..0000000
--- a/debian/libavcodec53.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/*/{,*/,*/*/}libavcodec.so.*
diff --git a/debian/libavcodec53.install.in b/debian/libavcodec53.install.in
new file mode 100644
index 0000000..7c69bb0
--- /dev/null
+++ b/debian/libavcodec53.install.in
@@ -0,0 +1 @@
+usr/lib/@DEB_HOST_MULTIARCH_OPT@/libavcodec.so.*
diff --git a/debian/libavdevice-dev.install b/debian/libavdevice-dev.install
deleted file mode 100644
index b38e4f0..0000000
--- a/debian/libavdevice-dev.install
+++ /dev/null
@@ -1,4 +0,0 @@
-usr/include/libavdevice
-usr/lib/*/libavdevice.a
-usr/lib/*/{,*/,*/*/}libavdevice.so
-usr/lib/*/pkgconfig/libavdevice.pc
diff --git a/debian/libavdevice-dev.install.in b/debian/libavdevice-dev.install.in
new file mode 100644
index 0000000..985ce79
--- /dev/null
+++ b/debian/libavdevice-dev.install.in
@@ -0,0 +1,4 @@
+usr/include/libavdevice
+usr/lib/@DEB_HOST_MULTIARCH@/libavdevice.a
+usr/lib/@DEB_HOST_MULTIARCH_OPT@/libavdevice.so
+usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/libavdevice.pc
diff --git a/debian/libavdevice53.install b/debian/libavdevice53.install
deleted file mode 100644
index 30b41e5..0000000
--- a/debian/libavdevice53.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/*/{,*/,*/*/}libavdevice.so.*
diff --git a/debian/libavdevice53.install.in b/debian/libavdevice53.install.in
new file mode 100644
index 0000000..e942547
--- /dev/null
+++ b/debian/libavdevice53.install.in
@@ -0,0 +1 @@
+usr/lib/@DEB_HOST_MULTIARCH_OPT@/libavdevice.so.*
diff --git a/debian/libavfilter-dev.install b/debian/libavfilter-dev.install
deleted file mode 100644
index f278a96..0000000
--- a/debian/libavfilter-dev.install
+++ /dev/null
@@ -1,4 +0,0 @@
-usr/include/libavfilter
-usr/lib/*/libavfilter.a
-usr/lib/*/{,*/,*/*/}libavfilter.so
-usr/lib/*/pkgconfig/libavfilter.pc
diff --git a/debian/libavfilter-dev.install.in b/debian/libavfilter-dev.install.in
new file mode 100644
index 0000000..716ee90
--- /dev/null
+++ b/debian/libavfilter-dev.install.in
@@ -0,0 +1,4 @@
+usr/include/libavfilter
+usr/lib/@DEB_HOST_MULTIARCH@/libavfilter.a
+usr/lib/@DEB_HOST_MULTIARCH_OPT@/libavfilter.so
+usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/libavfilter.pc
diff --git a/debian/libavfilter2.install b/debian/libavfilter2.install
deleted file mode 100644
index 1efdd0b..0000000
--- a/debian/libavfilter2.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/*/{,*/,*/*/}libavfilter.so.*
diff --git a/debian/libavfilter2.install.in b/debian/libavfilter2.install.in
new file mode 100644
index 0000000..4e4157c
--- /dev/null
+++ b/debian/libavfilter2.install.in
@@ -0,0 +1 @@
+usr/lib/@DEB_HOST_MULTIARCH_OPT@/libavfilter.so.*
diff --git a/debian/libavformat-dev.install b/debian/libavformat-dev.install
deleted file mode 100644
index 93c742e..0000000
--- a/debian/libavformat-dev.install
+++ /dev/null
@@ -1,4 +0,0 @@
-usr/include/libavformat
-usr/lib/*/libavformat.a
-usr/lib/*/{,*/,*/*/}libavformat.so
-usr/lib/*/pkgconfig/libavformat.pc
diff --git a/debian/libavformat-dev.install.in b/debian/libavformat-dev.install.in
new file mode 100644
index 0000000..a4ee167
--- /dev/null
+++ b/debian/libavformat-dev.install.in
@@ -0,0 +1,4 @@
+usr/include/libavformat
+usr/lib/@DEB_HOST_MULTIARCH@/libavformat.a
+usr/lib/@DEB_HOST_MULTIARCH_OPT@/libavformat.so
+usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/libavformat.pc
diff --git a/debian/libavformat53.install b/debian/libavformat53.install
deleted file mode 100644
index 0a3dc1a..0000000
--- a/debian/libavformat53.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/*/{,*/,*/*/}libavformat.so.*
diff --git a/debian/libavformat53.install.in b/debian/libavformat53.install.in
new file mode 100644
index 0000000..660f3a5
--- /dev/null
+++ b/debian/libavformat53.install.in
@@ -0,0 +1 @@
+usr/lib/@DEB_HOST_MULTIARCH_OPT@/libavformat.so.*
diff --git a/debian/libavutil-dev.install b/debian/libavutil-dev.install
deleted file mode 100644
index 2a410c7..0000000
--- a/debian/libavutil-dev.install
+++ /dev/null
@@ -1,4 +0,0 @@
-usr/include/libavutil
-usr/lib/*/libavutil.a
-usr/lib/*/{,*/,*/*/}libavutil.so
-usr/lib/*/pkgconfig/libavutil.pc
diff --git a/debian/libavutil-dev.install.in b/debian/libavutil-dev.install.in
new file mode 100644
index 0000000..5eeb883
--- /dev/null
+++ b/debian/libavutil-dev.install.in
@@ -0,0 +1,4 @@
+usr/include/libavutil
+usr/lib/@DEB_HOST_MULTIARCH@/libavutil.a
+usr/lib/@DEB_HOST_MULTIARCH_OPT@/libavutil.so
+usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/libavutil.pc
diff --git a/debian/libavutil51.install b/debian/libavutil51.install
deleted file mode 100644
index f89ecbe..0000000
--- a/debian/libavutil51.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/*/{,*/,*/*/}libavutil.so.*
diff --git a/debian/libavutil51.install.in b/debian/libavutil51.install.in
new file mode 100644
index 0000000..3dc6cc2
--- /dev/null
+++ b/debian/libavutil51.install.in
@@ -0,0 +1 @@
+usr/lib/@DEB_HOST_MULTIARCH_OPT@/libavutil.so.*
diff --git a/debian/libpostproc-dev.install b/debian/libpostproc-dev.install
deleted file mode 100644
index de5d0f9..0000000
--- a/debian/libpostproc-dev.install
+++ /dev/null
@@ -1,4 +0,0 @@
-usr/include/libpostproc
-usr/lib/*/libpostproc.a
-usr/lib/*/{,*/,*/*/}libpostproc.so
-usr/lib/*/pkgconfig/libpostproc.pc
diff --git a/debian/libpostproc-dev.install.in b/debian/libpostproc-dev.install.in
new file mode 100644
index 0000000..bf4bcb5
--- /dev/null
+++ b/debian/libpostproc-dev.install.in
@@ -0,0 +1,4 @@
+usr/include/libpostproc
+usr/lib/@DEB_HOST_MULTIARCH@/libpostproc.a
+usr/lib/@DEB_HOST_MULTIARCH_OPT@/libpostproc.so
+usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/libpostproc.pc
diff --git a/debian/libpostproc52.install b/debian/libpostproc52.install
deleted file mode 100644
index 78d31a1..0000000
--- a/debian/libpostproc52.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/*/{,*/,*/*/}libpostproc.so.*
diff --git a/debian/libpostproc52.install.in b/debian/libpostproc52.install.in
new file mode 100644
index 0000000..5c4aee3
--- /dev/null
+++ b/debian/libpostproc52.install.in
@@ -0,0 +1 @@
+usr/lib/@DEB_HOST_MULTIARCH_OPT@/libpostproc.so.*
diff --git a/debian/libswscale-dev.install b/debian/libswscale-dev.install
deleted file mode 100644
index b4d9715..0000000
--- a/debian/libswscale-dev.install
+++ /dev/null
@@ -1,4 +0,0 @@
-usr/include/libswscale
-usr/lib/*/libswscale.a
-usr/lib/*/{,*/,*/*/}libswscale.so
-usr/lib/*/pkgconfig/libswscale.pc
diff --git a/debian/libswscale-dev.install.in b/debian/libswscale-dev.install.in
new file mode 100644
index 0000000..71eb932
--- /dev/null
+++ b/debian/libswscale-dev.install.in
@@ -0,0 +1,4 @@
+usr/include/libswscale
+usr/lib/@DEB_HOST_MULTIARCH@/libswscale.a
+usr/lib/@DEB_HOST_MULTIARCH_OPT@/libswscale.so
+usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/libswscale.pc
diff --git a/debian/libswscale2.install b/debian/libswscale2.install
deleted file mode 100644
index b403da1..0000000
--- a/debian/libswscale2.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/*/{,*/,*/*/}libswscale.so.*
diff --git a/debian/libswscale2.install.in b/debian/libswscale2.install.in
new file mode 100644
index 0000000..2ac5f14
--- /dev/null
+++ b/debian/libswscale2.install.in
@@ -0,0 +1 @@
+usr/lib/@DEB_HOST_MULTIARCH_OPT@/libswscale.so.*
diff --git a/debian/rules b/debian/rules
index 5deb5a4..95f508c 100755
--- a/debian/rules
+++ b/debian/rules
@@ -7,6 +7,7 @@ UPSTREAM_VERSION := $(shell echo $(DEB_VERSION) | sed -r 's/[^:]+://; s/-[^-]+$$
 SHLIBS_VERSION := 4:0.8~beta1~
 
 LIB_PKGS := $(shell sed -nr 's/^Package:[[:space:]]*(lib(avutil|avcodec|avdevice|avformat|avfilter|postproc|swscale)(-extra-)?[0-9]+)[[:space:]]*$$/\1/p' debian/control)
+DEV_PKGS := $(shell echo $(LIB_PKGS) | sed 's/[0-9]\+\>/-dev/g')
 
 # Support multiple makes at once
 ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
@@ -21,12 +22,21 @@ endif
 endif
 
 include debian/confflags
+OPT_FLAVOR := $(filter-out static shared, $(FLAVORS))
 
 $(info FLAVORS = $(FLAVORS))
 $(info DEB_BUILD_OPTIONS = $(DEB_BUILD_OPTIONS))
 $(info CFLAGS = $(CFLAGS))
 $(info LDFLAGS = $(LDFLAGS))
 
+DH_INSTALL_FILES := $(foreach pkg, $(LIB_PKGS) $(DEV_PKGS), debian/$(pkg).install)
+$(DH_INSTALL_FILES):
+	sed 's/@DEB_HOST_MULTIARCH\(_OPT\)\?@/$(DEB_HOST_MULTIARCH)/g' $@.in > $@
+ifneq (,$(OPT_FLAVOR))
+	grep @DEB_HOST_MULTIARCH_OPT@ < $@.in | \
+	sed 's:@DEB_HOST_MULTIARCH_OPT@:$(DEB_HOST_MULTIARCH)/$($(OPT_FLAVOR)_shlibdir):g' >> $@
+endif
+
 configure-%: configure-stamp-%
 configure-stamp-%: $(QUILT_STAMPFN)
 	dh_testdir
@@ -60,7 +70,7 @@ clean:
 	    $(addprefix configure-stamp-, $(FLAVORS)) \
 	    build-doxy-stamp
 	rm -rf $(addprefix debian-, $(FLAVORS)) doxy
-	dh_clean
+	dh_clean $(DH_INSTALL_FILES)
 
 get-orig-source:
 	dh_testdir
@@ -73,7 +83,7 @@ define install_flavor
 
 endef
 
-install: build
+install: build $(DH_INSTALL_FILES)
 	dh_testdir
 	dh_testroot
 	dh_prep

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list