Home Home > GIT Browse
diff options
authorMichal Marek <mmarek@suse.cz>2009-10-07 16:15:56 +0200
committerMichal Marek <mmarek@suse.cz>2009-10-07 16:15:56 +0200
commit834aa041fd03610f6d24c45f8c3c86156e14a6d4 (patch)
parent191992263262448ab880016fe39609cecd9e8f6e (diff)
parent5a85cbbecdd1a20d81f1216f1fb25ebeb0c28e48 (diff)
Merge branch 'scripts'
1 files changed, 82 insertions, 48 deletions
diff --git a/README b/README
index ea630ff7e9..cb2b2cb6f8 100644
--- a/README
+++ b/README
@@ -5,6 +5,7 @@ Kernel Repository Guidelines
Table Of Contents
+ Getting Started
Patch Headers
Before You Commit -- Things To Check
Config Option Changes
@@ -14,6 +15,43 @@ Table Of Contents
Embargoed Patches
Related Information
+Getting Started
+Make sure you have a decent git version (1.5.x should work) and quilt
+Introduce yourself if you haven't done so already:
+ $ git config --global user.name "Your Name"
+ $ git config --global user.email your@email
+If you ommit the --global option, the setting will only apply to this
+Set up some git hooks and helpers:
+ $ ./scripts/install-git-hooks
+To hack on the kernel sources:
+ $ ./scripts/sequence-patch.sh --quilt
+ $ cd tmp/linux-$version-$branch
+ $ quilt new patches.fixes/fix-foo-and-bar
+ $ quilt edit some/file.c
+ $ ./refresh_patch.sh
+ $ quilt header -e # see next chapter
+Refer to quilt documentation for details. When you are done, add the new
+patch to an appropriate place in the series.conf file and run
+./scripts/log to commit it.
+To build rpm packages:
+ $ ./scripts/tar-up.sh
+This creates a source package in the kernel-source directory. Use
+'build', 'osc build' or upload it to the buildservice to build rpms.
Patch Headers
@@ -41,6 +79,10 @@ what the patch does, who wrote it, and who inside SUSE/Novell we'll
* The patch should include a References: tag that identifies the
Bugzilla bug number, FATE entry, etc. where the patch is discussed.
+ Please prefix bugzilla.novell.com bug numbers with bnc# and fate
+ feature numbers with fate#. Have a look at
+ http://en.opensuse.org/Packaging/Patches#Current_set_of_abbreviations
+ for a full list of abbreviations.
* The patch header may (and often, should) include a more extensive
description of what the patch does, why, and how. The idea is to
@@ -62,24 +104,27 @@ Example usage of scripts/patch-tag-template:
Example patch header:
- | From: Andrew Morton <akpm@osdl.org>
- | Subject: Fix EOF -EIO problems with direct io
- | References: 47120, LTC1001
- | Patch-mainline: 2.6.11-rc2
+ | Date: Fri, Sep 26 2008 15:20:10 +1000
+ | From: Peter Leckie <pleckie@sgi.com>
+ | References: SGI:PV986789 bnc#482148
+ | Subject: Clean up dquot pincount code
+ | Patch-mainline: 2.6.28
- | For reasons which escape me, blockdev_get_blocks() is returning -EIO if
- | the mapping request straddles the end of the disk. This causes reads
- | which straddle end-of-disk to return -EIO.
+ | Clean up dquot pincount code.
- | Fix it up so that it correctly trims the returned result down to match
- | the size of the device, for both reads and writes.
+ | This is a code cleanup and optimization that removes a per mount point
+ | spinlock from the quota code and cleans up the code.
- | If a write attempt is fully beyond end-of-device then return -EIO. We
- | never get this far anyway, because generic_write_checks() will return
- | -ENOSPC if all of the write lies outside a blockdev's i_size.
+ | The patch changes the pincount from being an int protected by a spinlock
+ | to an atomic_t allowing the pincount to be manipulated without holding
+ | the spinlock.
- | Signed-off-by: Jens Axboe <axboe@suse.de>
+ | This cleanup also protects against random wakup's of both the aild and
+ | xfssyncd by reevaluating the pincount after been woken. Two latter patches
+ | will address the Spurious wakeups.
+ |
+ | Signed-off-by: Peter Leckie <pleckie@sgi.com>
+ | Acked-by: Jan Kara <jack@suse.cz>
Before You Commit -- Things To Check
@@ -90,11 +135,6 @@ doing this is using scripts/sequence-patch.sh:
$ export SCRATCH_AREA=/var/tmp/scratch
$ scripts/sequence-patch.sh
-Please subscribe to the kernel-cvs@suse.de mailing list,
-http://mailman.suse.de/mailman/listinfo/kernel-cvs. This is where
-automatic build failures are sent; please watch this list
-particularly after committing to the repository.
Please test-compile the kernel or even test-build kernel packages,
depending on the impact of your changes. Use scripts/tar-up.sh for
creating an Autobuild source directory.
@@ -191,7 +231,8 @@ During kernel builds, two things related to the kernel ABI happen:
check how severe the ABI changes are compared to this reference.
These reference files are located in kabi/$ARCH/symvers-$FLAVOR. Too
severe changes will abort the build. See rpm/kernel-binary.spec.in
- and scripts/kabi-checks for details.
+ and scripts/kabi-checks (SLES9 - SLES10) or rpm/symsets.pl (SLES11)
+ for details.
* We want to avoid losing kernel(...) symbols when additional symbols
are added, but all previous symbols are still available: in this
@@ -205,25 +246,19 @@ During kernel builds, two things related to the kernel ABI happen:
export the kernel(...) symbols from reference symset files.
-Updating Kernel ABI Reference Files
+To update the reference files, use scripts/update-symvers:
-The kernel repository contains scripts/update-symvers, which can be run
-on a set of RPM packages in order to extract the /boot/symvers-* and
-/boot/symsets-* files from those RPMs, and add them to the repository
-in the right places.
+ $ ./scripts/update-symvers kernel-default- \
+ kernel-default- ...
-A rough guide to updating the Kernel ABI:
+It is also possible to update only a subset of the symbols, e.g.:
+ $ ./scripts/update-symvers --filter=fs/xfs ...
+In either case, ask the branch owner and kernel packager for permission
+before touching the kabi files.
- $ mbuild -r `mbuild -q | awk '{print $1}'` # remove all exiting mbuilds
- $ cd kernel-source
- $ ./scripts/tar-up_and_run_mbuild.sh -i all # all configs ignoring KABI
- $ sleep 2h # wait for builds to complete
- $ find /mounts/built/mbuild/$HOSTNAME-$USER-* -name *.rpm |\
- xargs ./scripts/update-symvers
-We need to update the reference files after each public kernel release
-that includes kernel ABI changes.
Ignoring Kernel ABI Changes
@@ -253,24 +288,23 @@ At certain times during development, the kernel may include "embargoed"
patches, i.e., patches that must not be mad available to parties outside
of SUSE/Novell before an agreed-upon time. Such patches usually have a
date of publication that has been coordinated among linux distributors,
-We allow adding such patches to the repository, but the following must
-be obeyed:
+etc. Such patches must not be committed to the usual branches, because
+these are pushed to a public mirror, but instead to a branch named with
+an _EMBARGO suffix, e.g. SLE11_BRANCH_EMBARGO. The KOTD scripts will
+testbuild such branches, but won't publish them. Once the fix becomes
+public, the branch needs to be merged back info the "mainline" branch,
- * The kernel-source.changes file should not give away details that
- might allow someone to exploit the bug being fixed. (The automatic
- CVS builds are made available publicaly, and the openSUSE copies of
- the kernel packages also include the entire changelog.)
- * Embargoed patches must be added to the embargoed-patches file with
- their planned release date, so that automatic CVS builds will
- automatically exclude them. When the release date shifts,
- embargoed-patches must be updated accordingly.
+ $ git checkout SLE11_BRANCH
+ $ git merge SLE11_BRANCH_EMBARGO
Related Information