Bug#752103: [x264] Modify the control file for building without libav etc

Peter Pentchev roam at ringlet.net
Thu Jun 19 15:50:25 UTC 2014


Source: x264
Version: 2:0.142.2412+gitd7e6896-1
Severity: wishlist
Tags: patch

Hi,

As promised, here's the second set of patches for the bootstrap build of
x264 without the libavformat, libffms2 and libgpac.  It adds the
appropriate annotations to the control file so that the build tools
(dpkg-dev, debhelper, sbuild) will know that a "stage1" build does not
need all the build dependencies and should not generate all the binary
packages.

If anything should go wrong with the patch, it is also available at
https://gitorious.org/roam-debian-bootstrap/x264-debian/commits/roam-stage1-control

Thanks in advance for your time and your work on Debian!

G'luck,
Peter

-- System Information:
Debian Release: jessie/sid
  APT prefers testing
  APT policy: (990, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.14-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=bg_BG.UTF-8, LC_CTYPE=bg_BG.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

-- 
Peter Pentchev  roam at ringlet.net roam at FreeBSD.org p.penchev at storpool.com
PGP key:        http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint 2EE7 A7A5 17FC 124C F115  C354 651E EFB0 2527 DF13
-------------- next part --------------
From 7b4de3e3f771487b014c37972576d85897220d86 Mon Sep 17 00:00:00 2001
From: Peter Pentchev <roam at ringlet.net>
Date: Thu, 19 Jun 2014 17:02:06 +0300
Subject: [PATCH 1/4] Use build profile annotations in the control file.

Use <!profile.stage1> for the libraries to be dropped and
Build-Profile: !stage1 for the x264 binary package.  Consequently,
drop all the rules file changes, since debhelper can figure out that
the x264 package is not to be built now.

Since debhelper now sees libx264 as the first binary package, make sure
that it doesn't install the README.Debian file there.  OK, well, maybe
it would be more correct to always install it there, but that's up to
the x264 maintainers.
---
 debian/README.Debian      | 10 ----------
 debian/control.in         |  8 ++++----
 debian/rules              | 12 +++---------
 debian/x264.README.Debian | 10 ++++++++++
 4 files changed, 17 insertions(+), 23 deletions(-)
 delete mode 100644 debian/README.Debian
 create mode 100644 debian/x264.README.Debian

diff --git a/debian/README.Debian b/debian/README.Debian
deleted file mode 100644
index 5f29696..0000000
--- a/debian/README.Debian
+++ /dev/null
@@ -1,10 +0,0 @@
-This package ships non-PIC code in shared objects in the i386 variant
-
-The reason is that x264 uses a lot of hand written assembler that is not
-relocatable for performance reasons. Writing the assembler code in a way
-that is becomes relocatable is unfeasible.
-
-Upstream takes care to use non-pic code only on architectures that
-support this.
-
- -- Reinhard Tartler <siretart at tauware.de>, Fri, 10 Feb 2012 21:30:39 +0100
diff --git a/debian/control.in b/debian/control.in
index 770a83f..76be83d 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -6,13 +6,12 @@ Uploaders:
  Reinhard Tartler <siretart at tauware.de>,
  Fabian Greffrath <fabian+debian at greffrath.com>,
  Rico Tzschichholz <ricotz at ubuntu.com>
-# In the stage1 build profile, drop the libavformat-dev, libffms2-dev and libgpac-dev dependencies.
 Build-Depends:
  debhelper (>= 8.1.3~),
  autotools-dev,
- libavformat-dev (>= 6:9),
- libffms2-dev,
- libgpac-dev (>= 0.5.0+svn4288~),
+ libavformat-dev (>= 6:9) <!profile.stage1>,
+ libffms2-dev <!profile.stage1>,
+ libgpac-dev (>= 0.5.0+svn4288~) <!profile.stage1>,
  yasm [any-i386 any-amd64]
 Standards-Version: 3.9.5
 Vcs-Git: git://anonscm.debian.org/pkg-multimedia/x264.git
@@ -22,6 +21,7 @@ Homepage: http://www.videolan.org/developers/x264.html
 Package: x264
 Section: graphics
 Architecture: any
+Build-Profiles: !stage1
 Depends:
  ${misc:Depends},
  ${shlibs:Depends}
diff --git a/debian/rules b/debian/rules
index f991ef3..ad922e5 100755
--- a/debian/rules
+++ b/debian/rules
@@ -7,19 +7,13 @@ DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
 DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
 DEB_HOST_GNU_CPU    ?= $(shell dpkg-architecture -qDEB_HOST_GNU_CPU)
 
-ifeq (,$(filter stage1,$(DEB_BUILD_PROFILES)))
-dh_exclude=
-else
-dh_exclude=	-Nx264
-endif
-
 include debian/confflags
 
 DH_INSTALL_FILES = debian/$(libx264N).install \
                    debian/libx264-dev.install
 
 %:
-	dh $@ --parallel --with autotools_dev $(dh_exclude)
+	dh $@ --parallel --with autotools_dev
 
 .PHONY: debian/control
 debian/control:
@@ -74,10 +68,10 @@ override_dh_auto_install:
 override_dh_auto_clean: debian/control
 	rm -rf debian/install
 	$(MAKE) -o config.mak distclean
-	dh_clean config.mak2 $(DH_INSTALL_FILES) $(dh_exclude)
+	dh_clean config.mak2 $(DH_INSTALL_FILES)
 
 override_dh_install: $(DH_INSTALL_FILES)
-	dh_install --list-missing --sourcedir=debian/install $(dh_exclude)
+	dh_install --list-missing --sourcedir=debian/install
 ifeq ($(do_opt),yes)
 	mkdir -p debian/$(libx264N)$(opt_libdir)
 	cp -a debian/install/opt$(opt_libdir)/*.so.* debian/$(libx264N)$(opt_libdir)
diff --git a/debian/x264.README.Debian b/debian/x264.README.Debian
new file mode 100644
index 0000000..5f29696
--- /dev/null
+++ b/debian/x264.README.Debian
@@ -0,0 +1,10 @@
+This package ships non-PIC code in shared objects in the i386 variant
+
+The reason is that x264 uses a lot of hand written assembler that is not
+relocatable for performance reasons. Writing the assembler code in a way
+that is becomes relocatable is unfeasible.
+
+Upstream takes care to use non-pic code only on architectures that
+support this.
+
+ -- Reinhard Tartler <siretart at tauware.de>, Fri, 10 Feb 2012 21:30:39 +0100
-- 
2.0.0

-------------- next part --------------
From a9e2b7bbf850b81b0a216b8fe43c9a2ad8f1040b Mon Sep 17 00:00:00 2001
From: Peter Pentchev <roam at ringlet.net>
Date: Thu, 19 Jun 2014 17:34:01 +0300
Subject: [PATCH 2/4] Regenerate the control file.

---
 debian/control | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/debian/control b/debian/control
index 10790da..8a572ab 100644
--- a/debian/control
+++ b/debian/control
@@ -6,13 +6,12 @@ Uploaders:
  Reinhard Tartler <siretart at tauware.de>,
  Fabian Greffrath <fabian+debian at greffrath.com>,
  Rico Tzschichholz <ricotz at ubuntu.com>
-# In the stage1 build profile, drop the libavformat-dev, libffms2-dev and libgpac-dev dependencies.
 Build-Depends:
  debhelper (>= 8.1.3~),
  autotools-dev,
- libavformat-dev (>= 6:9),
- libffms2-dev,
- libgpac-dev (>= 0.5.0+svn4288~),
+ libavformat-dev (>= 6:9) <!profile.stage1>,
+ libffms2-dev <!profile.stage1>,
+ libgpac-dev (>= 0.5.0+svn4288~) <!profile.stage1>,
  yasm [any-i386 any-amd64]
 Standards-Version: 3.9.5
 Vcs-Git: git://anonscm.debian.org/pkg-multimedia/x264.git
@@ -22,6 +21,7 @@ Homepage: http://www.videolan.org/developers/x264.html
 Package: x264
 Section: graphics
 Architecture: any
+Build-Profiles: !stage1
 Depends:
  ${misc:Depends},
  ${shlibs:Depends}
-- 
2.0.0

-------------- next part --------------
From 125f83d1831a85ef97161e1a05bde1ec0028f76b Mon Sep 17 00:00:00 2001
From: Peter Pentchev <roam at ringlet.net>
Date: Thu, 19 Jun 2014 18:46:27 +0300
Subject: [PATCH 3/4] Add versioned dependencies on build-profile-aware tools.

---
 debian/control.in | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/debian/control.in b/debian/control.in
index 76be83d..25bfe55 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -7,8 +7,9 @@ Uploaders:
  Fabian Greffrath <fabian+debian at greffrath.com>,
  Rico Tzschichholz <ricotz at ubuntu.com>
 Build-Depends:
- debhelper (>= 8.1.3~),
+ debhelper (>= 9.20140227),
  autotools-dev,
+ dpkg-dev (>= 1.17.2),
  libavformat-dev (>= 6:9) <!profile.stage1>,
  libffms2-dev <!profile.stage1>,
  libgpac-dev (>= 0.5.0+svn4288~) <!profile.stage1>,
-- 
2.0.0

-------------- next part --------------
From 8ab8264a456b8b360d4ef3e304a932f1d2407970 Mon Sep 17 00:00:00 2001
From: Peter Pentchev <roam at ringlet.net>
Date: Thu, 19 Jun 2014 18:46:51 +0300
Subject: [PATCH 4/4] Regenerate the control file.

---
 debian/control | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/debian/control b/debian/control
index 8a572ab..696aef9 100644
--- a/debian/control
+++ b/debian/control
@@ -7,8 +7,9 @@ Uploaders:
  Fabian Greffrath <fabian+debian at greffrath.com>,
  Rico Tzschichholz <ricotz at ubuntu.com>
 Build-Depends:
- debhelper (>= 8.1.3~),
+ debhelper (>= 9.20140227),
  autotools-dev,
+ dpkg-dev (>= 1.17.2),
  libavformat-dev (>= 6:9) <!profile.stage1>,
  libffms2-dev <!profile.stage1>,
  libgpac-dev (>= 0.5.0+svn4288~) <!profile.stage1>,
-- 
2.0.0

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-multimedia-maintainers/attachments/20140619/312d4c93/attachment-0001.sig>


More information about the pkg-multimedia-maintainers mailing list