FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Ubuntu > Ubuntu Kernel Team

 
 
LinkBack Thread Tools
 
Old 01-19-2009, 01:46 PM
Andy Whitcroft
 
Default UBUNTU: add hooks to prepare the source tree

When we package the source for building we do it in one of two ways.
During early cycle where we have no original tarball to base from uploads
contain the entire source. Once we base on a released kernel version
the uploadds contain a base tarball and a diff delta. In the latter
case all of the ubuntu delta is represented as a diff and this diff
cannot carry any permission information including the executable bits.
This leads us to lose any executable status on any added scripts.

There are two solutions to this problem, two places at which we might
fix any permissions issues. We can either fix all consumers of the
master source tree such that after installing the files they also fix
any permissions. Or we can fix the master source tree itself before
any of the targets consumes it. The master source tree is consumed in a
number of targets the source, docs, headers, and binary headers packages.
We could modify each of these to fix the permissions of the files that
they installed. However each of these takes a different subset of the
source and each uses its own code incantation; each of these would need
to be manually maintained. Therefore it seems sensible to pre-repair
the source tree.

This patch introduces a new preparation phase which performs any
required source tree repair. This phase is added as a pre-requisite
for all installer phases allowing any source file to be modified in this
preparation phase. We also connect this to the rule 'patch' target which
is the official manual interface for ensuring your source tree is ready
for use. Note that this only needed when using the source from an apt-get
source download, permission are maintained in our git tree.

Signed-off-by: Andy Whitcroft <apw@canonical.com>
---
debian/rules | 8 ++++++++
debian/rules.d/2-binary-arch.mk | 2 +-
debian/rules.d/3-binary-indep.mk | 6 +++---
3 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/debian/rules b/debian/rules
index f661442..4af7fca 100755
--- a/debian/rules
+++ b/debian/rules
@@ -49,6 +49,8 @@ clean: debian/control
# This gets rid of the d-i packages in control
cp -f debian/control.stub debian/control

+patch: prepare-master-source
+
# Builds the image, arch headers and debug packages
include debian/rules.d/2-binary-arch.mk

@@ -145,3 +147,9 @@ debian/control: debian/control.stub
fi

kernel-wedge gen-control > debian/control
+
+# Ensure that the master source tree is ready for building from, use this
+# to ensure executable files in our delta are still executable and the like.
+.PHONY: prepare-master-source
+prepare-master-source:
+ chmod +x scripts/test-suspend
diff --git a/debian/rules.d/2-binary-arch.mk b/debian/rules.d/2-binary-arch.mk
index 800c9b0..6244a1b 100644
--- a/debian/rules.d/2-binary-arch.mk
+++ b/debian/rules.d/2-binary-arch.mk
@@ -32,7 +32,7 @@ install-%: dbgpkgdir = $(CURDIR)/debian/linux-image-debug-$(abi_release)-$*
install-%: basepkg = linux-headers-$(abi_release)
install-%: hdrdir = $(CURDIR)/debian/$(basepkg)-$*/usr/src/$(basepkg)-$*
install-%: target_flavour = $*
-install-%: $(stampdir)/stamp-build-% checks-%
+install-%: $(stampdir)/stamp-build-% checks-% prepare-master-source
dh_testdir
dh_testroot
dh_clean -k -plinux-image-$(abi_release)-$*
diff --git a/debian/rules.d/3-binary-indep.mk b/debian/rules.d/3-binary-indep.mk
index c25f10f..7bf4e01 100644
--- a/debian/rules.d/3-binary-indep.mk
+++ b/debian/rules.d/3-binary-indep.mk
@@ -2,7 +2,7 @@ build-indep:

docpkg = linux-doc-$(release)
docdir = $(CURDIR)/debian/$(docpkg)/usr/share/doc/$(docpkg)
-install-doc:
+install-doc: prepare-master-source
dh_testdir
dh_testroot
dh_clean -k -p$(docpkg)
@@ -24,7 +24,7 @@ install-doc:

indep_hdrpkg = linux-headers-$(abi_release)
indep_hdrdir = $(CURDIR)/debian/$(indep_hdrpkg)/usr/src/$(indep_hdrpkg)
-install-headers:
+install-headers: prepare-master-source
dh_testdir
dh_testroot
dh_clean -k -p$(indep_hdrpkg)
@@ -42,7 +42,7 @@ install-headers:

srcpkg = linux-source-$(release)
srcdir = $(CURDIR)/debian/$(srcpkg)/usr/src/$(srcpkg)
-install-source:
+install-source: prepare-master-source
dh_testdir
dh_testroot
dh_clean -k -p$(srcpkg)
--
1.6.1.258.g7ff14


--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
 
Old 01-20-2009, 01:41 PM
Steve Conklin
 
Default UBUNTU: add hooks to prepare the source tree

On 01/19/2009 08:46 AM, Andy Whitcroft wrote:
> When we package the source for building we do it in one of two ways.
> During early cycle where we have no original tarball to base from uploads
> contain the entire source. Once we base on a released kernel version
> the uploadds contain a base tarball and a diff delta. In the latter
> case all of the ubuntu delta is represented as a diff and this diff
> cannot carry any permission information including the executable bits.
> This leads us to lose any executable status on any added scripts.
>
> There are two solutions to this problem, two places at which we might
> fix any permissions issues. We can either fix all consumers of the
> master source tree such that after installing the files they also fix
> any permissions. Or we can fix the master source tree itself before
> any of the targets consumes it. The master source tree is consumed in a
> number of targets the source, docs, headers, and binary headers packages.
> We could modify each of these to fix the permissions of the files that
> they installed. However each of these takes a different subset of the
> source and each uses its own code incantation; each of these would need
> to be manually maintained. Therefore it seems sensible to pre-repair
> the source tree.
>
> This patch introduces a new preparation phase which performs any
> required source tree repair. This phase is added as a pre-requisite
> for all installer phases allowing any source file to be modified in this
> preparation phase. We also connect this to the rule 'patch' target which
> is the official manual interface for ensuring your source tree is ready
> for use. Note that this only needed when using the source from an apt-get
> source download, permission are maintained in our git tree.
>
> Signed-off-by: Andy Whitcroft <apw@canonical.com>
> ---
> debian/rules | 8 ++++++++
> debian/rules.d/2-binary-arch.mk | 2 +-
> debian/rules.d/3-binary-indep.mk | 6 +++---
> 3 files changed, 12 insertions(+), 4 deletions(-)
>
> diff --git a/debian/rules b/debian/rules
> index f661442..4af7fca 100755
> --- a/debian/rules
> +++ b/debian/rules
> @@ -49,6 +49,8 @@ clean: debian/control
> # This gets rid of the d-i packages in control
> cp -f debian/control.stub debian/control
>
> +patch: prepare-master-source
> +
> # Builds the image, arch headers and debug packages
> include debian/rules.d/2-binary-arch.mk
>
> @@ -145,3 +147,9 @@ debian/control: debian/control.stub
> fi
>
> kernel-wedge gen-control > debian/control
> +
> +# Ensure that the master source tree is ready for building from, use this
> +# to ensure executable files in our delta are still executable and the like.
> +.PHONY: prepare-master-source
> +prepare-master-source:
> + chmod +x scripts/test-suspend
> diff --git a/debian/rules.d/2-binary-arch.mk b/debian/rules.d/2-binary-arch.mk
> index 800c9b0..6244a1b 100644
> --- a/debian/rules.d/2-binary-arch.mk
> +++ b/debian/rules.d/2-binary-arch.mk
> @@ -32,7 +32,7 @@ install-%: dbgpkgdir = $(CURDIR)/debian/linux-image-debug-$(abi_release)-$*
> install-%: basepkg = linux-headers-$(abi_release)
> install-%: hdrdir = $(CURDIR)/debian/$(basepkg)-$*/usr/src/$(basepkg)-$*
> install-%: target_flavour = $*
> -install-%: $(stampdir)/stamp-build-% checks-%
> +install-%: $(stampdir)/stamp-build-% checks-% prepare-master-source
> dh_testdir
> dh_testroot
> dh_clean -k -plinux-image-$(abi_release)-$*
> diff --git a/debian/rules.d/3-binary-indep.mk b/debian/rules.d/3-binary-indep.mk
> index c25f10f..7bf4e01 100644
> --- a/debian/rules.d/3-binary-indep.mk
> +++ b/debian/rules.d/3-binary-indep.mk
> @@ -2,7 +2,7 @@ build-indep:
>
> docpkg = linux-doc-$(release)
> docdir = $(CURDIR)/debian/$(docpkg)/usr/share/doc/$(docpkg)
> -install-doc:
> +install-doc: prepare-master-source
> dh_testdir
> dh_testroot
> dh_clean -k -p$(docpkg)
> @@ -24,7 +24,7 @@ install-doc:
>
> indep_hdrpkg = linux-headers-$(abi_release)
> indep_hdrdir = $(CURDIR)/debian/$(indep_hdrpkg)/usr/src/$(indep_hdrpkg)
> -install-headers:
> +install-headers: prepare-master-source
> dh_testdir
> dh_testroot
> dh_clean -k -p$(indep_hdrpkg)
> @@ -42,7 +42,7 @@ install-headers:
>
> srcpkg = linux-source-$(release)
> srcdir = $(CURDIR)/debian/$(srcpkg)/usr/src/$(srcpkg)
> -install-source:
> +install-source: prepare-master-source
> dh_testdir
> dh_testroot
> dh_clean -k -p$(srcpkg)

ACK

--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
 

Thread Tools




All times are GMT. The time now is 07:28 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org