Bug#488117: libv4l
Hi Gregor,
I've looked over the changes and have a number of suggestions, all
included in the attached debdiff:
- renamed lib* to lib*-0: the major ABI number should be reflected
in the binary package names.
- dropped all the .dirs files: they are redundant (i.e. only needed
for creating empty directories).
- removed the static files from *-dev and the rules file. Building
static libraries is not really a good idea, since it allows for
copies of the code to leak everywhere, which makes security
updates a pain, etc. Unless they are explicitly required, I
strongly recommend dropping them.
- corrected the clean/unpatch rule combo: the build must clean
first, then unpatch.
- added .symbols files to track the change of ABI over time.
Thanks again for keeping this going. It looks really good.
-Kees
--
Kees Cook @outflux.net
diff -u libv4l-0.5.0/debian/libv4l-dev.links libv4l-0.5.0/debian/libv4l-dev.links
--- libv4l-0.5.0/debian/libv4l-dev.links
+++ libv4l-0.5.0/debian/libv4l-dev.links
@@ -1 +1 @@
-usr/share/doc/libv4l /usr/share/doc/libv4l-dev
+usr/share/doc/libv4l-0 /usr/share/doc/libv4l-dev
reverted:
--- libv4l-0.5.0/debian/libv4l.lintian-overrides
+++ libv4l-0.5.0.orig/debian/libv4l.lintian-overrides
@@ -1 +0,0 @@
-libv4l: package-name-doesnt-match-sonames libv4l1-0 libv4l2-0 libv4lconvert0
reverted:
--- libv4l-0.5.0/debian/libv4l-dev.dirs
+++ libv4l-0.5.0.orig/debian/libv4l-dev.dirs
@@ -1,2 +0,0 @@
-usr/lib
-usr/include
reverted:
--- libv4l-0.5.0/debian/lib32v4l.dirs
+++ libv4l-0.5.0.orig/debian/lib32v4l.dirs
@@ -1,2 +0,0 @@
-usr/lib32
-usr/lib32/libv4l
diff -u libv4l-0.5.0/debian/lib32v4l-dev.install libv4l-0.5.0/debian/lib32v4l-dev.install
--- libv4l-0.5.0/debian/lib32v4l-dev.install
+++ libv4l-0.5.0/debian/lib32v4l-dev.install
@@ -1,4 +1,2 @@
-#usr/include/*
-usr/lib32/lib*.a
usr/lib32/lib*.so
usr/lib32/pkgconfig/*
reverted:
--- libv4l-0.5.0/debian/libv4l.dirs
+++ libv4l-0.5.0.orig/debian/libv4l.dirs
@@ -1,2 +0,0 @@
-usr/lib
-usr/lib/libv4l
diff -u libv4l-0.5.0/debian/control libv4l-0.5.0/debian/control
--- libv4l-0.5.0/debian/control
+++ libv4l-0.5.0/debian/control
@@ -6,7 +6,7 @@
Standards-Version: 3.8.0
Homepage: http://people.atrpms.net/~hdegoede/
-Package: libv4l
+Package: libv4l-0
Section: libs
Architecture: any
Depends: ${shlibs:Depends}
@@ -30,14 +31,14 @@
Package: libv4l-dev
Section: libdevel
Architecture: any
-Depends: libv4l (= ${binary:Version})
+Depends: libv4l-0 (= ${binary:Version})
Description: Collection of video4linux support libraries (development files)
This package contains development files (headers and static libraries).
-Package: lib32v4l
+Package: lib32v4l-0
Section: libs
Architecture: amd64
-Depends: libv4l (= ${binary:Version}), ${shlibs:Depends}
+Depends: libv4l-0 (= ${binary:Version}), ${shlibs:Depends}
Description: Collection of video4linux support libraries (32 bit)
libv4l is a collection of libraries which adds a thin abstraction layer on
top of video4linux2 devices. The purpose of this (thin) layer is to make it
@@ -60,7 +61,7 @@
Package: lib32v4l-dev
Section: libdevel
Architecture: amd64
-Depends: libv4l (= ${binary:Version}), lib32v4l (= ${binary:Version}), libv4l-dev (= ${binary:Version})
+Depends: libv4l-0 (= ${binary:Version}), lib32v4l-0 (= ${binary:Version}), libv4l-dev (= ${binary:Version})
Description: Collection of video4linux support libraries (32bit development files)
This package contains development files for 32 bit compatibility
(headers and static libraries).
reverted:
--- libv4l-0.5.0/debian/libv4l.install
+++ libv4l-0.5.0.orig/debian/libv4l.install
@@ -1,2 +0,0 @@
-usr/lib/lib*.so.*
-usr/lib/libv4l/*.so
diff -u libv4l-0.5.0/debian/rules libv4l-0.5.0/debian/rules
--- libv4l-0.5.0/debian/rules
+++ libv4l-0.5.0/debian/rules
@@ -15,39 +15,28 @@
dh_prep
dh_installdirs -s
- # clean object files (maybe some non-pic were left behind)
- $(MAKE) clean
# build shared libs and install
$(MAKE) PREFIX=/usr DESTDIR=$(CURDIR)/debian/tmp install
- # clean object files
- $(MAKE) clean
- # build static libs and install
- $(MAKE) PREFIX=/usr DESTDIR=$(CURDIR)/debian/tmp LINKTYPE=static install
- # clean object files
- $(MAKE) clean
ifeq ($(DEB_HOST_ARCH), amd64)
- # build 32 bit shared libs and install
- $(MAKE) CPPFLAGS=-m32 LDFLAGS=-m32 PREFIX=/usr LIBDIR=/usr/lib32 DESTDIR=$(CURDIR)/debian/tmp install
# clean object files
- $(MAKE) CPPFLAGS=-m32 LDFLAGS=-m32 clean
- # build 32 bit static libs and install
- $(MAKE) CPPFLAGS=-m32 LDFLAGS=-m32 PREFIX=/usr LIBDIR=/usr/lib32 DESTDIR=$(CURDIR)/debian/tmp LINKTYPE=static install
- # clean object files
- $(MAKE) CPPFLAGS=-m32 LDFLAGS=-m32 clean
+ $(MAKE) clean
+ # build 32 bit shared libs and install
+ $(MAKE) CPPFLAGS+=-m32 LDFLAGS+=-m32 PREFIX=/usr LIBDIR=/usr/lib32 DESTDIR=$(CURDIR)/debian/tmp install
endif
touch $@
-clean: unpatch
+clean: clean-patched unpatch
+clean-patched:
dh_testdir
dh_testroot
- rm -f build-stamp
# Add here commands to clean up after the build process.
$(MAKE) clean
dh_clean
+ rm -f build-stamp
# Build architecture-independent files here.
binary-indep: build
@@ -58,8 +47,8 @@
dh_testdir
dh_testroot
dh_lintian -s
- dh_installchangelogs -plibv4l ChangeLog
- dh_installdocs -plibv4l
+ dh_installchangelogs -plibv4l-0 ChangeLog
+ dh_installdocs -plibv4l-0
dh_install -s --sourcedir=debian/tmp
dh_link -s
dh_strip -s
reverted:
--- libv4l-0.5.0/debian/lib32v4l.links
+++ libv4l-0.5.0.orig/debian/lib32v4l.links
@@ -1 +0,0 @@
-usr/share/doc/libv4l /usr/share/doc/lib32v4l
reverted:
--- libv4l-0.5.0/debian/lib32v4l-dev.dirs
+++ libv4l-0.5.0.orig/debian/lib32v4l-dev.dirs
@@ -1 +0,0 @@
-usr/lib32
diff -u libv4l-0.5.0/debian/libv4l-dev.install libv4l-0.5.0/debian/libv4l-dev.install
--- libv4l-0.5.0/debian/libv4l-dev.install
+++ libv4l-0.5.0/debian/libv4l-dev.install
@@ -1,4 +1,3 @@
usr/include/*
-usr/lib/lib*.a
usr/lib/lib*.so
usr/lib/pkgconfig/*
reverted:
--- libv4l-0.5.0/debian/lib32v4l.install
+++ libv4l-0.5.0.orig/debian/lib32v4l.install
@@ -1,2 +0,0 @@
-usr/lib32/lib*.so.*
-usr/lib32/libv4l/*.so
only in patch2:
unchanged:
--- libv4l-0.5.0.orig/debian/lib32v4l-0.symbols
+++ libv4l-0.5.0/debian/lib32v4l-0.symbols
@@ -0,0 +1,30 @@
+libv4l1.so.0 lib32v4l-0 #MINVER#
+ v4l1_close@Base 0.5.0
+ v4l1_dup@Base 0.5.0
+ v4l1_ioctl@Base 0.5.0
+ v4l1_mmap@Base 0.5.0
+ v4l1_munmap@Base 0.5.0
+ v4l1_open@Base 0.5.0
+ v4l1_read@Base 0.5.0
+libv4l2.so.0 lib32v4l-0 #MINVER#
+ v4l2_close@Base 0.5.0
+ v4l2_dup@Base 0.5.0
+ v4l2_fd_open@Base 0.5.0
+ v4l2_get_control@Base 0.5.0
+ v4l2_ioctl@Base 0.5.0
+ v4l2_log_file@Base 0.5.0
+ v4l2_mmap@Base 0.5.0
+ v4l2_munmap@Base 0.5.0
+ v4l2_open@Base 0.5.0
+ v4l2_read@Base 0.5.0
+ v4l2_set_control@Base 0.5.0
+libv4lconvert.so.0 lib32v4l-0 #MINVER#
+ v4lconvert_convert@Base 0.5.0
+ v4lconvert_create@Base 0.5.0
+ v4lconvert_destroy@Base 0.5.0
+ v4lconvert_enum_fmt@Base 0.5.0
+ v4lconvert_enum_frameintervals@Base 0.5.0
+ v4lconvert_enum_framesizes@Base 0.5.0
+ v4lconvert_get_error_message@Base 0.5.0
+ v4lconvert_needs_conversion@Base 0.5.0
+ v4lconvert_try_format@Base 0.5.0
only in patch2:
unchanged:
--- libv4l-0.5.0.orig/debian/lib32v4l-0.links
+++ libv4l-0.5.0/debian/lib32v4l-0.links
@@ -0,0 +1 @@
+usr/share/doc/libv4l-0 /usr/share/doc/lib32v4l-0
only in patch2:
unchanged:
--- libv4l-0.5.0.orig/debian/lib32v4l-0.install
+++ libv4l-0.5.0/debian/lib32v4l-0.install
@@ -0,0 +1,2 @@
+usr/lib32/lib*.so.*
+usr/lib32/libv4l/*.so
only in patch2:
unchanged:
--- libv4l-0.5.0.orig/debian/libv4l-0.lintian-overrides
+++ libv4l-0.5.0/debian/libv4l-0.lintian-overrides
@@ -0,0 +1 @@
+libv4l-0: package-name-doesnt-match-sonames libv4l1-0 libv4l2-0 libv4lconvert0
only in patch2:
unchanged:
--- libv4l-0.5.0.orig/debian/libv4l-0.install
+++ libv4l-0.5.0/debian/libv4l-0.install
@@ -0,0 +1,2 @@
+usr/lib/lib*.so.*
+usr/lib/libv4l/*.so
only in patch2:
unchanged:
--- libv4l-0.5.0.orig/debian/libv4l-0.symbols
+++ libv4l-0.5.0/debian/libv4l-0.symbols
@@ -0,0 +1,30 @@
+libv4l1.so.0 libv4l-0 #MINVER#
+ v4l1_close@Base 0.5.0
+ v4l1_dup@Base 0.5.0
+ v4l1_ioctl@Base 0.5.0
+ v4l1_mmap@Base 0.5.0
+ v4l1_munmap@Base 0.5.0
+ v4l1_open@Base 0.5.0
+ v4l1_read@Base 0.5.0
+libv4l2.so.0 libv4l-0 #MINVER#
+ v4l2_close@Base 0.5.0
+ v4l2_dup@Base 0.5.0
+ v4l2_fd_open@Base 0.5.0
+ v4l2_get_control@Base 0.5.0
+ v4l2_ioctl@Base 0.5.0
+ v4l2_log_file@Base 0.5.0
+ v4l2_mmap@Base 0.5.0
+ v4l2_munmap@Base 0.5.0
+ v4l2_open@Base 0.5.0
+ v4l2_read@Base 0.5.0
+ v4l2_set_control@Base 0.5.0
+libv4lconvert.so.0 libv4l-0 #MINVER#
+ v4lconvert_convert@Base 0.5.0
+ v4lconvert_create@Base 0.5.0
+ v4lconvert_destroy@Base 0.5.0
+ v4lconvert_enum_fmt@Base 0.5.0
+ v4lconvert_enum_frameintervals@Base 0.5.0
+ v4lconvert_enum_framesizes@Base 0.5.0
+ v4lconvert_get_error_message@Base 0.5.0
+ v4lconvert_needs_conversion@Base 0.5.0
+ v4lconvert_try_format@Base 0.5.0
Reply to: