Hello community, here is the log from the commit of package kernel-source checked in at Mon Sep 29 18:18:26 CEST 2008. -------- --- kernel-source/kernel-debug.changes 2008-09-15 11:56:52.000000000 +0200 +++ /mounts/work_src_done/STABLE/kernel-source/kernel-debug.changes 2008-09-29 15:34:31.033391000 +0200 @@ -1,0 +2,534 @@ +Mon Sep 29 15:29:06 CEST 2008 - agruen@suse.de + +- Do not split kernels which have modules disabled (kernel-ps3) + or which do not differentiate between supported and unsupported + modules (kernel-vanilla). + +------------------------------------------------------------------- +Mon Sep 29 13:28:01 CEST 2008 - hare@suse.de + +- patches.drivers/open-fcoe-dcb-support: Fix section annotation + for ixgbe. +- patches.fixes/scsi-enhance-error-codes: Add missing hunk. +- patches.fixes/open-iscsi-git-update: Open-iSCSI updates + (FATE#304283). +- patches.kernel.org/gdth-section-conflict: Fixup gdth + section annotations. + +------------------------------------------------------------------- +Mon Sep 29 09:42:32 CEST 2008 - aj@suse.de + +- Silence /etc/rpm/macros.kernel-source via rpmlintrc. + +------------------------------------------------------------------- +Mon Sep 29 09:37:19 CEST 2008 - jbeulich@novell.com + +- Enable Solarflare driver link and resource driver patches. +- Update x86 config files. + +------------------------------------------------------------------- +Mon Sep 29 05:13:31 CEST 2008 - agruen@suse.de + +- rpm/kernel-source.spc.in: Try to get rid of a hack that makes + uname -r pretend in build environments that the kernel from + the installed kernel-source package is the running kernel: + packages assuming this are completely broken ans should really + be fixed. + +------------------------------------------------------------------- +Mon Sep 29 04:08:34 CEST 2008 - agruen@suse.de + +- rpm/kernel-source.spec.in: Prepare for the upcoming introduction + of kernel-source-rt (and kernel-syms-rt) for producing KMPs for + real-time kernels. +- rpm/install-configs: Remove; this script didn't improve things. + +------------------------------------------------------------------- +Sun Sep 28 21:00:13 CEST 2008 - aj@suse.de + +- rpm/kernel-source.rpmlintrc: New file to silence warnings about + zero size files +- rpm/kernel-source.spec.in: Install it. +- rpm/kernel-source.spec.in: Make /etc/rpm/macros.kernel-source + a config file to silence rpmlint. + +------------------------------------------------------------------- +Sun Sep 28 13:50:06 CEST 2008 - jdelvare@suse.de + +- supported.conf: Update the list of i2c bus drivers. + - i2c-i810, i2c-prosavage and i2c-savage4 are gone. + - i2c-isch and i2c-nforce2-s4985 are new, mark as supported. + +------------------------------------------------------------------- +Sun Sep 28 10:17:15 CEST 2008 - aj@suse.de + +- rpm/kernel-source.spec.in: Do not package .gitignore files. + +------------------------------------------------------------------- +Sun Sep 28 06:03:34 CEST 2008 - agruen@suse.de + +- Fix CONFIG_MODULES=n case. +- config.conf: Some cleanups. + +------------------------------------------------------------------- +Sat Sep 27 19:25:06 CEST 2008 - agruen@suse.de + +- Split the binary kernel packages into three parts: + + kernel-$flavor-base: very reduced hardware support, intended + to be used in virtual machine images + + kernel-$flavor: extends the base package; contains all kernel + modules we can support + + kernel-$flavor-extra: all other kernel modules which may be + useful, but which we cannot support. + +------------------------------------------------------------------- +Sat Sep 27 17:47:33 CEST 2008 - agruen@suse.de + +- Hardlink duplicate files automatically: It doesn't save much, + but it keeps rpmlint from breaking the package build. + +------------------------------------------------------------------- +Sat Sep 27 17:24:30 CEST 2008 - agruen@suse.de + +- Add consistency check: supported modules must not depend on + unsupported ones ... and guess what, there was a large number of + such modules. Fix this by adding all the dependent modules to + supported.conf. + +------------------------------------------------------------------- +Sat Sep 27 06:36:40 CEST 2008 - knikanth@suse.de + +- patches.suse/dm-barrier-single-device: Implement barrier + support for single device DM devices (FATE#304489). + +------------------------------------------------------------------- +Fri Sep 26 23:05:13 CEST 2008 - jeffm@suse.de + +- scripts/tar-up_and_run_mbuild.sh: Added -xen flavor to default + mbuild spec list. + +------------------------------------------------------------------- +Fri Sep 26 23:04:33 CEST 2008 - jeffm@suse.de + +- patches.xen/xen-e1000e_Export_set_memory_ro-rw: Export + set_memory_ro() and set_memory_rw() calls for xen. (bnc#425480). + +------------------------------------------------------------------- +Fri Sep 26 22:08:24 CEST 2008 - kkeil@suse.de + +- patches.suse/e1000e_mmap_range_chk:check ranges in pci_mmap + * updated version with better reporting (bnc#425480) + +------------------------------------------------------------------- +Fri Sep 26 21:28:13 CEST 2008 - kkeil@suse.de + +- patches to track down and fix the e1000e NVM corruption + (bnc#425480) + +- patches.suse/e1000e_allow_bad_checksum: e1000e: allow bad + checksum +- patches.suse/e1000e_call_dump_eeprom: e1000e: dump eeprom to + dmesg for ich8/9 +- patches.suse/e1000e_debug_contention_on_NVM_SWFLAG: e1000e: + debug contention on NVM SWFLAG +- patches.suse/e1000e_do_not_ever_sleep_in_interrupt_context: + e1000e: do not ever sleep in interrupt context +- patches.suse/e1000e_drop_stats_lock: e1000e: drop stats lock +- patches.suse/e1000e_Export_set_memory_ro-rw: Export + set_memory_ro() and set_memory_rw() calls +- patches.suse/e1000e_fix_lockdep_issues: e1000e: fix lockdep + issues +- patches.suse/e1000e_mmap_range_chk: check ranges in pci_mmap +- patches.suse/e1000e_reset_swflag_after_resetting_hardware: + e1000e: reset swflag after resetting hardware +- patches.suse/e1000e_update_version: update version +- patches.suse/e1000e_use_set_memory_ro-rw_to_protect_flash_memory: + e1000e: Use set_memory_ro()/set_memory_rw() to protect flash + memory + +- cleanup old not longer used patches + * patches.drivers/e1000-7.6.5-napi-tail.patch + * patches.drivers/e1000-7.6.9.2 + * patches.drivers/e1000-7.6.9.2-napi + +------------------------------------------------------------------- +Fri Sep 26 21:26:35 CEST 2008 - kkeil@suse.de + +- Enable CONFIG_SGI_IOC4=m in x86_64 (bnc#430275) + +------------------------------------------------------------------- +Fri Sep 26 20:54:17 CEST 2008 - jeffm@suse.de + +- patches.arch/acpi-export-hotplug_execute: acpi: export + acpi_os_hotplug_execute. + +------------------------------------------------------------------- +Fri Sep 26 20:43:49 CEST 2008 - jeffm@suse.de + +- patches.xen/xen-rwlocks-enable-interrupts: add missing + __raw_{read,write}_lock_flags to xen's asm/spinlock.h. + +------------------------------------------------------------------- +Fri Sep 26 20:33:25 CEST 2008 - jeffm@suse.de + +- patches.arch/acpi-bay-remove-from-makefile: acpi: remove bay.c + from makefile. + +------------------------------------------------------------------- +Fri Sep 26 19:56:25 CEST 2008 - jeffm@suse.de + +- rpm/kernel-binary.spec.in: Disabled sparse checking. Too many + false positives. + +------------------------------------------------------------------- +Fri Sep 26 18:07:30 CEST 2008 - trenn@suse.de + +No functional change: +- patches.arch/acpi_thermal_passive_blacklist.patch: Avoid + critical temp shutdowns on specific ThinkPad T4x(p) and R40 + (https://bugzilla.novell.com/show_bug.cgi?id=333043). + +Dock bug fixes (kacpid runs amok on Dells after suspend): +- patches.arch/acpi-dock-avoid-check-_STA-method.patch: avoid + check _STA method (fate#304731,bnc#401740). +- patches.arch/acpi-dock-fix-eject-request-process.patch: fix + eject request process (fate#304731,bnc#401740). + +More Dock improvements, unrelated to above fixes: ++++ 337 more lines (skipped) ++++ between kernel-source/kernel-debug.changes ++++ and /mounts/work_src_done/STABLE/kernel-source/kernel-debug.changes kernel-default.changes: same change kernel-dummy.changes: same change kernel-kdump.changes: same change kernel-pae.changes: same change kernel-ppc64.changes: same change kernel-ps3.changes: same change kernel-s390.changes: same change kernel-source.changes: same change kernel-syms.changes: same change New Changes file: --- /dev/null 2008-04-22 03:09:48.000000000 +0200 +++ /mounts/work_src_done/STABLE/kernel-source/kernel-trace.changes 2008-09-29 15:34:32.042546000 +0200 @@ -0,0 +1,41082 @@ +------------------------------------------------------------------- +Mon Sep 29 15:29:06 CEST 2008 - agruen@suse.de + +- Do not split kernels which have modules disabled (kernel-ps3) + or which do not differentiate between supported and unsupported + modules (kernel-vanilla). + +------------------------------------------------------------------- +Mon Sep 29 13:28:01 CEST 2008 - hare@suse.de + +- patches.drivers/open-fcoe-dcb-support: Fix section annotation + for ixgbe. +- patches.fixes/scsi-enhance-error-codes: Add missing hunk. +- patches.fixes/open-iscsi-git-update: Open-iSCSI updates + (FATE#304283). +- patches.kernel.org/gdth-section-conflict: Fixup gdth + section annotations. + +------------------------------------------------------------------- +Mon Sep 29 09:42:32 CEST 2008 - aj@suse.de + +- Silence /etc/rpm/macros.kernel-source via rpmlintrc. + +------------------------------------------------------------------- +Mon Sep 29 09:37:19 CEST 2008 - jbeulich@novell.com + +- Enable Solarflare driver link and resource driver patches. +- Update x86 config files. + +------------------------------------------------------------------- +Mon Sep 29 05:13:31 CEST 2008 - agruen@suse.de + +- rpm/kernel-source.spc.in: Try to get rid of a hack that makes + uname -r pretend in build environments that the kernel from + the installed kernel-source package is the running kernel: + packages assuming this are completely broken ans should really + be fixed. + +------------------------------------------------------------------- +Mon Sep 29 04:08:34 CEST 2008 - agruen@suse.de + +- rpm/kernel-source.spec.in: Prepare for the upcoming introduction + of kernel-source-rt (and kernel-syms-rt) for producing KMPs for + real-time kernels. +- rpm/install-configs: Remove; this script didn't improve things. + +------------------------------------------------------------------- +Sun Sep 28 21:00:13 CEST 2008 - aj@suse.de + +- rpm/kernel-source.rpmlintrc: New file to silence warnings about + zero size files +- rpm/kernel-source.spec.in: Install it. +- rpm/kernel-source.spec.in: Make /etc/rpm/macros.kernel-source + a config file to silence rpmlint. + +------------------------------------------------------------------- +Sun Sep 28 13:50:06 CEST 2008 - jdelvare@suse.de + +- supported.conf: Update the list of i2c bus drivers. + - i2c-i810, i2c-prosavage and i2c-savage4 are gone. + - i2c-isch and i2c-nforce2-s4985 are new, mark as supported. + +------------------------------------------------------------------- +Sun Sep 28 10:17:15 CEST 2008 - aj@suse.de + +- rpm/kernel-source.spec.in: Do not package .gitignore files. + +------------------------------------------------------------------- +Sun Sep 28 06:03:34 CEST 2008 - agruen@suse.de + +- Fix CONFIG_MODULES=n case. +- config.conf: Some cleanups. + +------------------------------------------------------------------- +Sat Sep 27 19:25:06 CEST 2008 - agruen@suse.de + +- Split the binary kernel packages into three parts: + + kernel-$flavor-base: very reduced hardware support, intended + to be used in virtual machine images + + kernel-$flavor: extends the base package; contains all kernel + modules we can support + + kernel-$flavor-extra: all other kernel modules which may be + useful, but which we cannot support. + +------------------------------------------------------------------- +Sat Sep 27 17:47:33 CEST 2008 - agruen@suse.de + +- Hardlink duplicate files automatically: It doesn't save much, + but it keeps rpmlint from breaking the package build. + +------------------------------------------------------------------- +Sat Sep 27 17:24:30 CEST 2008 - agruen@suse.de + +- Add consistency check: supported modules must not depend on + unsupported ones ... and guess what, there was a large number of + such modules. Fix this by adding all the dependent modules to + supported.conf. + +------------------------------------------------------------------- +Sat Sep 27 06:36:40 CEST 2008 - knikanth@suse.de + +- patches.suse/dm-barrier-single-device: Implement barrier + support for single device DM devices (FATE#304489). + +------------------------------------------------------------------- +Fri Sep 26 23:05:13 CEST 2008 - jeffm@suse.de + +- scripts/tar-up_and_run_mbuild.sh: Added -xen flavor to default + mbuild spec list. + +------------------------------------------------------------------- +Fri Sep 26 23:04:33 CEST 2008 - jeffm@suse.de + +- patches.xen/xen-e1000e_Export_set_memory_ro-rw: Export + set_memory_ro() and set_memory_rw() calls for xen. (bnc#425480). + +------------------------------------------------------------------- +Fri Sep 26 22:08:24 CEST 2008 - kkeil@suse.de + +- patches.suse/e1000e_mmap_range_chk:check ranges in pci_mmap + * updated version with better reporting (bnc#425480) + +------------------------------------------------------------------- +Fri Sep 26 21:28:13 CEST 2008 - kkeil@suse.de + +- patches to track down and fix the e1000e NVM corruption + (bnc#425480) + +- patches.suse/e1000e_allow_bad_checksum: e1000e: allow bad + checksum +- patches.suse/e1000e_call_dump_eeprom: e1000e: dump eeprom to + dmesg for ich8/9 +- patches.suse/e1000e_debug_contention_on_NVM_SWFLAG: e1000e: + debug contention on NVM SWFLAG +- patches.suse/e1000e_do_not_ever_sleep_in_interrupt_context: + e1000e: do not ever sleep in interrupt context +- patches.suse/e1000e_drop_stats_lock: e1000e: drop stats lock +- patches.suse/e1000e_Export_set_memory_ro-rw: Export + set_memory_ro() and set_memory_rw() calls +- patches.suse/e1000e_fix_lockdep_issues: e1000e: fix lockdep + issues +- patches.suse/e1000e_mmap_range_chk: check ranges in pci_mmap +- patches.suse/e1000e_reset_swflag_after_resetting_hardware: + e1000e: reset swflag after resetting hardware +- patches.suse/e1000e_update_version: update version +- patches.suse/e1000e_use_set_memory_ro-rw_to_protect_flash_memory: + e1000e: Use set_memory_ro()/set_memory_rw() to protect flash + memory + +- cleanup old not longer used patches + * patches.drivers/e1000-7.6.5-napi-tail.patch + * patches.drivers/e1000-7.6.9.2 + * patches.drivers/e1000-7.6.9.2-napi + +------------------------------------------------------------------- +Fri Sep 26 21:26:35 CEST 2008 - kkeil@suse.de + +- Enable CONFIG_SGI_IOC4=m in x86_64 (bnc#430275) + +------------------------------------------------------------------- +Fri Sep 26 20:54:17 CEST 2008 - jeffm@suse.de + +- patches.arch/acpi-export-hotplug_execute: acpi: export + acpi_os_hotplug_execute. + +------------------------------------------------------------------- +Fri Sep 26 20:43:49 CEST 2008 - jeffm@suse.de + +- patches.xen/xen-rwlocks-enable-interrupts: add missing + __raw_{read,write}_lock_flags to xen's asm/spinlock.h. + +------------------------------------------------------------------- +Fri Sep 26 20:33:25 CEST 2008 - jeffm@suse.de + +- patches.arch/acpi-bay-remove-from-makefile: acpi: remove bay.c + from makefile. + +------------------------------------------------------------------- +Fri Sep 26 19:56:25 CEST 2008 - jeffm@suse.de + +- rpm/kernel-binary.spec.in: Disabled sparse checking. Too many + false positives. + +------------------------------------------------------------------- +Fri Sep 26 18:07:30 CEST 2008 - trenn@suse.de + +No functional change: +- patches.arch/acpi_thermal_passive_blacklist.patch: Avoid + critical temp shutdowns on specific ThinkPad T4x(p) and R40 + (https://bugzilla.novell.com/show_bug.cgi?id=333043). + +Dock bug fixes (kacpid runs amok on Dells after suspend): +- patches.arch/acpi-dock-avoid-check-_STA-method.patch: avoid + check _STA method (fate#304731,bnc#401740). +- patches.arch/acpi-dock-fix-eject-request-process.patch: fix + eject request process (fate#304731,bnc#401740). + ++++ 40885 more lines (skipped) ++++ between /dev/null ++++ and /mounts/work_src_done/STABLE/kernel-source/kernel-trace.changes --- kernel-source/kernel-vanilla.changes 2008-09-15 11:56:54.000000000 +0200 +++ /mounts/work_src_done/STABLE/kernel-source/kernel-vanilla.changes 2008-09-29 15:34:32.204384000 +0200 @@ -1,0 +2,534 @@ +Mon Sep 29 15:29:06 CEST 2008 - agruen@suse.de + +- Do not split kernels which have modules disabled (kernel-ps3) + or which do not differentiate between supported and unsupported + modules (kernel-vanilla). + +------------------------------------------------------------------- +Mon Sep 29 13:28:01 CEST 2008 - hare@suse.de + +- patches.drivers/open-fcoe-dcb-support: Fix section annotation + for ixgbe. +- patches.fixes/scsi-enhance-error-codes: Add missing hunk. +- patches.fixes/open-iscsi-git-update: Open-iSCSI updates + (FATE#304283). +- patches.kernel.org/gdth-section-conflict: Fixup gdth + section annotations. + +------------------------------------------------------------------- +Mon Sep 29 09:42:32 CEST 2008 - aj@suse.de + +- Silence /etc/rpm/macros.kernel-source via rpmlintrc. + +------------------------------------------------------------------- +Mon Sep 29 09:37:19 CEST 2008 - jbeulich@novell.com + +- Enable Solarflare driver link and resource driver patches. +- Update x86 config files. + +------------------------------------------------------------------- +Mon Sep 29 05:13:31 CEST 2008 - agruen@suse.de + +- rpm/kernel-source.spc.in: Try to get rid of a hack that makes + uname -r pretend in build environments that the kernel from + the installed kernel-source package is the running kernel: + packages assuming this are completely broken ans should really + be fixed. + +------------------------------------------------------------------- +Mon Sep 29 04:08:34 CEST 2008 - agruen@suse.de + +- rpm/kernel-source.spec.in: Prepare for the upcoming introduction + of kernel-source-rt (and kernel-syms-rt) for producing KMPs for + real-time kernels. +- rpm/install-configs: Remove; this script didn't improve things. + +------------------------------------------------------------------- +Sun Sep 28 21:00:13 CEST 2008 - aj@suse.de + +- rpm/kernel-source.rpmlintrc: New file to silence warnings about + zero size files +- rpm/kernel-source.spec.in: Install it. +- rpm/kernel-source.spec.in: Make /etc/rpm/macros.kernel-source + a config file to silence rpmlint. + +------------------------------------------------------------------- +Sun Sep 28 13:50:06 CEST 2008 - jdelvare@suse.de + +- supported.conf: Update the list of i2c bus drivers. + - i2c-i810, i2c-prosavage and i2c-savage4 are gone. + - i2c-isch and i2c-nforce2-s4985 are new, mark as supported. + +------------------------------------------------------------------- +Sun Sep 28 10:17:15 CEST 2008 - aj@suse.de + +- rpm/kernel-source.spec.in: Do not package .gitignore files. + +------------------------------------------------------------------- +Sun Sep 28 06:03:34 CEST 2008 - agruen@suse.de + +- Fix CONFIG_MODULES=n case. +- config.conf: Some cleanups. + +------------------------------------------------------------------- +Sat Sep 27 19:25:06 CEST 2008 - agruen@suse.de + +- Split the binary kernel packages into three parts: + + kernel-$flavor-base: very reduced hardware support, intended + to be used in virtual machine images + + kernel-$flavor: extends the base package; contains all kernel + modules we can support + + kernel-$flavor-extra: all other kernel modules which may be + useful, but which we cannot support. + +------------------------------------------------------------------- +Sat Sep 27 17:47:33 CEST 2008 - agruen@suse.de + +- Hardlink duplicate files automatically: It doesn't save much, + but it keeps rpmlint from breaking the package build. + +------------------------------------------------------------------- +Sat Sep 27 17:24:30 CEST 2008 - agruen@suse.de + +- Add consistency check: supported modules must not depend on + unsupported ones ... and guess what, there was a large number of + such modules. Fix this by adding all the dependent modules to + supported.conf. + +------------------------------------------------------------------- +Sat Sep 27 06:36:40 CEST 2008 - knikanth@suse.de + +- patches.suse/dm-barrier-single-device: Implement barrier + support for single device DM devices (FATE#304489). + +------------------------------------------------------------------- +Fri Sep 26 23:05:13 CEST 2008 - jeffm@suse.de + +- scripts/tar-up_and_run_mbuild.sh: Added -xen flavor to default + mbuild spec list. + +------------------------------------------------------------------- +Fri Sep 26 23:04:33 CEST 2008 - jeffm@suse.de + +- patches.xen/xen-e1000e_Export_set_memory_ro-rw: Export + set_memory_ro() and set_memory_rw() calls for xen. (bnc#425480). + +------------------------------------------------------------------- +Fri Sep 26 22:08:24 CEST 2008 - kkeil@suse.de + +- patches.suse/e1000e_mmap_range_chk:check ranges in pci_mmap + * updated version with better reporting (bnc#425480) + +------------------------------------------------------------------- +Fri Sep 26 21:28:13 CEST 2008 - kkeil@suse.de + +- patches to track down and fix the e1000e NVM corruption + (bnc#425480) + +- patches.suse/e1000e_allow_bad_checksum: e1000e: allow bad + checksum +- patches.suse/e1000e_call_dump_eeprom: e1000e: dump eeprom to + dmesg for ich8/9 +- patches.suse/e1000e_debug_contention_on_NVM_SWFLAG: e1000e: + debug contention on NVM SWFLAG +- patches.suse/e1000e_do_not_ever_sleep_in_interrupt_context: + e1000e: do not ever sleep in interrupt context +- patches.suse/e1000e_drop_stats_lock: e1000e: drop stats lock +- patches.suse/e1000e_Export_set_memory_ro-rw: Export + set_memory_ro() and set_memory_rw() calls +- patches.suse/e1000e_fix_lockdep_issues: e1000e: fix lockdep + issues +- patches.suse/e1000e_mmap_range_chk: check ranges in pci_mmap +- patches.suse/e1000e_reset_swflag_after_resetting_hardware: + e1000e: reset swflag after resetting hardware +- patches.suse/e1000e_update_version: update version +- patches.suse/e1000e_use_set_memory_ro-rw_to_protect_flash_memory: + e1000e: Use set_memory_ro()/set_memory_rw() to protect flash + memory + +- cleanup old not longer used patches + * patches.drivers/e1000-7.6.5-napi-tail.patch + * patches.drivers/e1000-7.6.9.2 + * patches.drivers/e1000-7.6.9.2-napi + +------------------------------------------------------------------- +Fri Sep 26 21:26:35 CEST 2008 - kkeil@suse.de + +- Enable CONFIG_SGI_IOC4=m in x86_64 (bnc#430275) + +------------------------------------------------------------------- +Fri Sep 26 20:54:17 CEST 2008 - jeffm@suse.de + +- patches.arch/acpi-export-hotplug_execute: acpi: export + acpi_os_hotplug_execute. + +------------------------------------------------------------------- +Fri Sep 26 20:43:49 CEST 2008 - jeffm@suse.de + +- patches.xen/xen-rwlocks-enable-interrupts: add missing + __raw_{read,write}_lock_flags to xen's asm/spinlock.h. + +------------------------------------------------------------------- +Fri Sep 26 20:33:25 CEST 2008 - jeffm@suse.de + +- patches.arch/acpi-bay-remove-from-makefile: acpi: remove bay.c + from makefile. + +------------------------------------------------------------------- +Fri Sep 26 19:56:25 CEST 2008 - jeffm@suse.de + +- rpm/kernel-binary.spec.in: Disabled sparse checking. Too many + false positives. + +------------------------------------------------------------------- +Fri Sep 26 18:07:30 CEST 2008 - trenn@suse.de + +No functional change: +- patches.arch/acpi_thermal_passive_blacklist.patch: Avoid + critical temp shutdowns on specific ThinkPad T4x(p) and R40 + (https://bugzilla.novell.com/show_bug.cgi?id=333043). + +Dock bug fixes (kacpid runs amok on Dells after suspend): +- patches.arch/acpi-dock-avoid-check-_STA-method.patch: avoid + check _STA method (fate#304731,bnc#401740). +- patches.arch/acpi-dock-fix-eject-request-process.patch: fix + eject request process (fate#304731,bnc#401740). + +More Dock improvements, unrelated to above fixes: ++++ 337 more lines (skipped) ++++ between kernel-source/kernel-vanilla.changes ++++ and /mounts/work_src_done/STABLE/kernel-source/kernel-vanilla.changes kernel-xen.changes: same change Old: ---- install-configs novell-kmp.tar.bz2 New: ---- kernel-source.rpmlintrc kernel-trace.changes kernel-trace.spec patches.trace.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kernel-debug.spec ++++++ --- /var/tmp/diff_new_pack.o25057/_old 2008-09-29 18:09:39.000000000 +0200 +++ /var/tmp/diff_new_pack.o25057/_new 2008-09-29 18:09:39.000000000 +0200 @@ -30,7 +30,6 @@ %define build_xen 0 %define build_um 0 %define build_vanilla 0 -%define build_nomodules 0 %if %{build_flavor} == "kdump" %define build_kdump 1 %endif @@ -43,19 +42,18 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%if %{build_flavor} == "ps3" -%define build_nomodules 1 -%endif Name: kernel-debug Summary: A Debug Version of the Kernel Version: 2.6.27 -Release: 7 +Release: 8 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ AutoReqProv: on -BuildRequires: coreutils module-init-tools +BuildRequires: coreutils module-init-tools sparse +BuildRequires: fdupes +Requires: kernel-debug-base = %version-%release Requires(pre): coreutils awk Requires(post): module-init-tools # This Requires is wrong, because the post/postun scripts have a @@ -68,6 +66,9 @@ Requires(post): perl-Bootloader Requires(post): mkinitrd Recommends: kerneloops +%if ! %sles_version +Recommends: kernel-debug-extra +%endif #!BuildIgnore: perl-Bootloader mkinitrd %if ! 0%{?opensuse_bs} BuildRequires: kernel-dummy @@ -137,7 +138,6 @@ Source32: config-subst Source33: check-for-config-changes Source34: check-supported-list -Source35: install-configs Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where @@ -157,6 +157,7 @@ Source109: patches.kernel.org.tar.bz2 Source110: patches.apparmor.tar.bz2 Source111: patches.rt.tar.bz2 +Source112: patches.trace.tar.bz2 Source120: kabi.tar.bz2 %define my_builddir %_builddir/%{name}-%{version} BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -183,8 +184,21 @@ Obsoletes: rt2x00-kmp Obsoletes: rfswitch-kmp Obsoletes: uvcvideo-kmp -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks,install-configs}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks}) %define symbols %(set -- kernel-debug debug $(case debug in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) +%define subarch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/debug$') +# Define some CONFIG variables as rpm macros as well. (rpm cannot handle +# defining them all at once.) +%define config_vars CONFIG_MODULES +%{expand:%(eval "$(test -n "%subarch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%subarch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)} +%if %build_vanilla || %CONFIG_MODULES != "y" +%define split_packages 0 +%else +%define split_packages 1 +%endif +# Build with bash instead of sh as the shell: this turns on bash +# extensions like <(...). +%define _buildshell /bin/bash # Provide the exported symbols as "ksym(symbol) = hash" %define __find_provides %_sourcedir/find-provides %name # Will modules not listed in supported.conf abort the kernel build (0/1)? @@ -200,7 +214,7 @@ -Source Timestamp: 2008-09-15 10:58:05 +0200 +Source Timestamp: 2008-09-29 15:31:19 +0200 %prep if ! [ -e %_sourcedir/linux-2.6.26.tar.bz2 ]; then @@ -210,16 +224,21 @@ fi echo "Architecture symbol(s):" %symbols # Unpack all sources and patches -%setup -q -c -T -a 0 -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109 -a 110 -a 111 -a 120 -# Generate the list of supported modules -( %_sourcedir/guards %symbols < %_sourcedir/supported.conf +%setup -q -c -T -a 0 -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109 -a 110 -a 111 -a 112 -a 120 +supported_conf() { + %_sourcedir/guards %symbols $* < %_sourcedir/supported.conf | sort -u +} +# Generate the list of modules to be marked as supported +( supported_conf base for how in external; do - ( %_sourcedir/guards %symbols < %_sourcedir/supported.conf - %_sourcedir/guards %symbols < %_sourcedir/supported.conf - %_sourcedir/guards %symbols $how < %_sourcedir/supported.conf \ - ) | sort | uniq -u | sed -e 's:$: '"$how"':' + comm -2 -3 <(supported_conf base $how) <(supported_conf base) \ + | sed -e 's:$: '"$how"':' done -) | sed -e 's,.*/,,' | sort > linux-2.6.26/Module.supported +) | sed -e 's,.*/,,' -e 's,\.ko$,,' > linux-2.6.26/Module.supported +# Create grep pattern file for the modules to end up in the base package +comm -2 -3 <(supported_conf base) <(supported_conf) \ + | sed -e 's:.*/::' -e 's:^:\\/:' -e 's:$:\.ko$:' \ + > %my_builddir/grep-for-base-modules cd linux-2.6.26 # Find out for which architecture to build. We do this here, and use the # result in the %build and %install sections. @@ -227,10 +246,7 @@ # On architectures with a bi-arch or cross compiler, we can compile for # an architecture different from %arch. The location of the config file # tells us for which architecture to compile. -set -- $( - for config in $(%_sourcedir/guards %symbols < %_sourcedir/config.conf) ; do - [ ${config#*/} = debug ] && echo $config - done) +set -- %subarch_flavor if [ $# -ne 1 ]; then echo "$# config files found for this spec file (but one needed)" >&2 exit 1 @@ -260,9 +276,9 @@ if [ -f %_sourcedir/localversion ] ; then cat %_sourcedir/localversion > localversion fi -%_sourcedir/install-configs %_sourcedir .. $RELEASE -config=arch/$subarch/defconfig.debug -cat $config \ +cat ../config/%subarch_flavor \ +| %_sourcedir/config-subst CONFIG_LOCALVERSION '"'-$RELEASE-debug'"' \ +| %_sourcedir/config-subst CONFIG_SUSE_KERNEL y \ %if 0%{?__debug_package:1} | %_sourcedir/config-subst CONFIG_DEBUG_INFO y \ %endif @@ -282,13 +298,14 @@ EOF %endif cat >> ../.rpm-defs <<EOF -KERNELRELEASE=2.6.27-rc6-$RELEASE-debug +KERNELRELEASE=2.6.27-rc7-$RELEASE-debug EOF %if 0%{?__debug_package:1} cat >> ../.rpm-defs <<EOF MAKE_ARGS="\$MAKE_ARGS CONFIG_DEBUG_INFO=y" EOF %endif +echo CONFIG_MODULES=%CONFIG_MODULES >> ../.rpm-defs %build source .rpm-defs @@ -323,7 +340,7 @@ export KBUILD_SYMTYPES=1 EOF source .kernel-binary.spec.buildenv -make %{?jobs:-j%jobs} all $MAKE_ARGS +make %{?jobs:-j%jobs} all $MAKE_ARGS CONFIG_DEBUG_SECTION_MISMATCH=y %install source .rpm-defs @@ -418,13 +435,16 @@ sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:debug:g" \ - %_sourcedir/pre.sh > ../pre.sh -( cat %_sourcedir/functions.sh + %_sourcedir/pre.sh > ../pre-base.sh +for sub in '-base' '' '-extra'; do + ( cat %_sourcedir/functions.sh sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:debug:g" \ + -e "s:@SUBPACKAGE@:kernel-debug$sub:g" \ %_sourcedir/post.sh -) > ../post.sh + ) > ../post$sub.sh +done ( cat %_sourcedir/functions.sh sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ @@ -437,18 +457,16 @@ ln -s $image$suffix %buildroot/boot/$image$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix cp .config %buildroot/boot/config-$KERNELRELEASE -%if ! %build_nomodules +gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz +if [ $CONFIG_MODULES = y ]; then make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot -%endif -if ! %_sourcedir/check-supported-list \ + if ! %_sourcedir/check-supported-list \ %_sourcedir %buildroot/lib/modules/$KERNELRELEASE; then %if %supported_modules_check exit 1 %endif echo "Consistency check error: please update supported.conf." -fi -gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz -if grep -q '^CONFIG_MODULES=y$' .config; then + fi # Preserve exports from previous kernels when possible. old_symsets=%my_builddir/kabi/$SUBARCH/symsets-debug.tar.gz [ -e $old_symsets ] || old_symsets= @@ -462,42 +480,41 @@ %buildroot/boot/symsets-$KERNELRELEASE.tar.gz \ $old_symsets || [ -n "$ignore_kabi_changes" -o %tolerate_kabi_changes -ge 8 ] -fi -# Also put the resulting file in $obj_dir/$SUBARCH/debug -# so that kernel-source + kernel-debug is sufficient for building -# modules that have modversions as well. -obj_dir=usr/src/linux-${KERNELRELEASE%%-debug}-obj -mkdir -p %buildroot/$obj_dir/$SUBARCH/debug -cp Module.symvers %buildroot/$obj_dir/$SUBARCH/debug -# Table of types used in exported symbols (for modversion debugging). -%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-$KERNELRELEASE -if [ -s %buildroot/boot/symtypes-$KERNELRELEASE ]; then + # Also put the resulting file in $obj_dir/$SUBARCH/debug + # so that kernel-source + kernel-debug is sufficient for building + # modules that have modversions as well. + obj_dir=usr/src/linux-${KERNELRELEASE%%-debug}-obj + mkdir -p %buildroot/$obj_dir/$SUBARCH/debug + cp Module.symvers %buildroot/$obj_dir/$SUBARCH/debug + # Table of types used in exported symbols (for modversion debugging). + %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-$KERNELRELEASE + if [ -s %buildroot/boot/symtypes-$KERNELRELEASE ]; then gzip -9 %buildroot/boot/symtypes-$KERNELRELEASE -else + else rm -f %buildroot/boot/symtypes-$KERNELRELEASE -fi -# Some architecture's $(uname -m) output is different from the ARCH -# parameter that needs to be passed to kbuild. Create symlinks from -# $(uname -m) to the ARCH directory. -[ -e %buildroot/$obj_dir/%_target_cpu ] \ + fi + # Some architecture's $(uname -m) output is different from the ARCH + # parameter that needs to be passed to kbuild. Create symlinks from + # $(uname -m) to the ARCH directory. + [ -e %buildroot/$obj_dir/%_target_cpu ] \ || ln -sf $SUBARCH %buildroot/$obj_dir/%_target_cpu %ifarch ppc ppc64 -[ -e %buildroot/$obj_dir/ppc ] \ + [ -e %buildroot/$obj_dir/ppc ] \ || ln -s $SUBARCH %buildroot/$obj_dir/ppc -[ -e %buildroot/$obj_dir/ppc64 ] \ + [ -e %buildroot/$obj_dir/ppc64 ] \ || ln -s $SUBARCH %buildroot/$obj_dir/ppc64 %endif -# Check for kABI changes -KABI=0 -if [ -e %my_builddir/kabi/$SUBARCH/symvers-debug ]; then + # Check for kABI changes + KABI=0 + if [ -e %my_builddir/kabi/$SUBARCH/symvers-debug ]; then %_sourcedir/kabi-checks \ %my_builddir/kabi/$SUBARCH/symvers-debug \ Module.symvers \ %my_builddir/kabi/commonsyms \ %my_builddir/kabi/usedsyms \ || KABI=$? -fi -if [ $KABI -gt %tolerate_kabi_changes ]; then + fi + if [ $KABI -gt %tolerate_kabi_changes ]; then echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ "of %tolerate_kabi_changes. Please try to avoid the kABI changes." if [ ! -e %my_builddir/kabi/$SUBARCH/ignore-debug -a \ @@ -509,68 +526,200 @@ fi # Indicate the ABI badness in build result emails. echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag -fi -if [ $KABI -ge 8 ]; then + fi + if [ $KABI -ge 8 ]; then echo "To find out which types have changed relative to the reference" \ "symbols, diff the symtypes.gz files of the reference kernel" \ "against the symtypes.gz file from this build." -fi -# We were building in %my_builddir/linux-2.6.26, but the sources will -# later be installed in /usr/src/linux-2.6.26-%source_rel. Fix up the -# build symlink. -# need to fake modules directory to satisfy scripts -%if %build_nomodules -mkdir -p %buildroot/lib/modules/$KERNELRELEASE/ -%endif -rm -f %buildroot/lib/modules/$KERNELRELEASE/{source,build} -ln -s /usr/src/linux-${KERNELRELEASE%%-debug} \ + fi + # We were building in %my_builddir/linux-2.6.26, but the sources will + # later be installed in /usr/src/linux-2.6.26-%source_rel. Fix up the + # build symlink. + rm -f %buildroot/lib/modules/$KERNELRELEASE/{source,build} + ln -s /usr/src/linux-${KERNELRELEASE%%-debug} \ %buildroot/lib/modules/$KERNELRELEASE/source -ln -s /$obj_dir/$SUBARCH/debug \ + ln -s /$obj_dir/$SUBARCH/debug \ %buildroot/lib/modules/$KERNELRELEASE/build -# Abort if there are any undefined symbols -msg="$(/sbin/depmod -F %buildroot/boot/System.map-$KERNELRELEASE \ + # Abort if there are any undefined symbols + msg="$(/sbin/depmod -F %buildroot/boot/System.map-$KERNELRELEASE \ -b %buildroot -ae $KERNELRELEASE 2>&1)" -if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then + if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then exit 1 -fi -# Create a dummy initrd with roughly the size the real one will have. -# That way, YaST will know that this package requires some additional -# space in /boot. -dd if=/dev/zero of=%buildroot/boot/initrd-$KERNELRELEASE \ + fi + # Create a dummy initrd with roughly the size the real one will have. + # That way, YaST will know that this package requires some additional + # space in /boot. + dd if=/dev/zero of=%buildroot/boot/initrd-$KERNELRELEASE \ bs=1024 seek=2047 count=1 -# Collect the file list. +%if %split_packages + # Generate the lists of supported and unsupported modules. + ( cd %buildroot + for module in $(find lib/modules/$KERNELRELEASE -type f -name '*.ko'); do + case "$(/sbin/modinfo -F supported $module)" in + (yes|external) + echo "/$module" >> %my_builddir/supported-modules + ;; + (*) + echo "/$module" >> %my_builddir/unsupported-modules + ;; + esac + done + ) + add_dependent_modules() { + local modules_dep=$1 + xargs make -rRs -f <(echo -e '%:\n\t@echo $@' ; cat $modules_dep) + } + modules_dep=%buildroot/lib/modules/$KERNELRELEASE/modules.dep + # Make sure that no supported modules depend on any unsupported modules. + dependent_unsupported_modules=$( + comm -3 <(sort %my_builddir/supported-modules) \ + <(cat %my_builddir/supported-modules \ + | add_dependent_modules $modules_dep \ + | sort)) + if [ -n "$dependent_unsupported_modules" ]; then + echo "The following unsupported modules are used by supported modules:" + echo "$dependent_unsupported_modules" + echo "Please fix supported.conf." + exit 1 + fi + # Compute the list of base modules: modules that core modules depend on + # implicitly are also core modules. + grep -f %my_builddir/grep-for-base-modules %my_builddir/supported-modules \ + | add_dependent_modules $modules_dep > %my_builddir/base-modules + # All supported modules which are not core modules belong in kernel-kernel-debug. + comm -3 <(sort %my_builddir/supported-modules) \ + <(sort %my_builddir/base-modules) \ + > %my_builddir/main-modules +%else + ( cd %buildroot + find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' + ) > %my_builddir/base-modules +%endif + # Set up some module aliases + install -d -m 755 %buildroot/etc/modprobe.d/ + install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ +fi +add_dirs_to_filelist() { + local filelist + filelist=$(cat) + echo "$filelist" + # Below, we do this: + # - remove filelist macros + # - remove last pathname component + # - generate all parents and make the list unique + # - skip directories owned be other packages + # - add the %dir prefix (double-escaped for find and rpm) + echo "$filelist" \ + | sed -re 's:%%%%[a-z]+(\([^)]+\))? ?::g' \ + | sed -re 's:/[^/]+$::' \ + | sed -nre ':a; p; s:/[^/]+$::; ta' \ + | sort -u \ + | sed -r -e '\:^(|/boot|/etc|/lib(/modules|/firmware)?|/usr(/src)?)$:d' \ + | sed -e 's:^:%%%%dir :' +} +# Collect the file lists. ( cd %buildroot - echo "%%defattr(-, root, root)" + echo "%%%%defattr(-, root, root)" find boot \ - \( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \ + \( -type l -o -name 'initrd-*' \) -printf '%%%%%%%%ghost /%%p\n' -o \ -type f -printf '/%%p\n' + if [ $CONFIG_MODULES = y ]; then find lib/modules/$KERNELRELEASE \ - -type d -printf '%%%%dir /%%p\n' -o \ - -path '*/modules.*' -printf '%%%%ghost /%%p\n' -o \ - -printf '/%%p\n' - test -d lib/firmware && \ - find lib/firmware/$KERNELRELEASE \ - -type d -printf '%%%%dir /%%p\n' -o \ - -path '*/modules.*' -printf '%%%%ghost /%%p\n' -o \ + -type d -o \ + -path '*/modules.*' -printf '%%%%%%%%ghost /%%p\n' -o \ + -name '*.ko' -prune -o \ -printf '/%%p\n' + cat %my_builddir/base-modules + echo '%%%%config /etc/modprobe.d/module-renames' find $obj_dir \ - -type d -printf '%%%%dir /%%p\n' -o \ + -type d -o \ + -printf '/%%p\n' + fi + test -d lib/firmware/$KERNELRELEASE && \ + find lib/firmware/$KERNELRELEASE \ + -type d -o \ -printf '/%%p\n' - echo '%%dir /etc/modprobe.d/' - echo '%%config /etc/modprobe.d/module-renames' if [ -e .%_docdir/%name ]; then - echo "%%doc %_docdir/%name" + echo "%%%%doc %_docdir/%name" fi -) > %my_builddir/kernel.files -# Set up some module aliases -install -d -m 755 %buildroot/etc/modprobe.d/ -install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ - -%pre -f pre.sh +) | add_dirs_to_filelist > %my_builddir/kernel-base.files +%if %split_packages + ( echo "%%%%defattr(-, root, root)" + cat %my_builddir/main-modules + ) | add_dirs_to_filelist > %my_builddir/kernel-main.files + ( echo "%%%%defattr(-, root, root)" + cat %my_builddir/unsupported-modules + ) | add_dirs_to_filelist > %my_builddir/kernel-extra.files +%endif +# Hardlink duplicate files automatically (from package fdupes): It doesn't safe +# much, but it keeps rpmlint from breaking the package build. +%fdupes $RPM_BUILD_ROOT +cd %my_builddir # it helps if rpm can find the file lists ... %post -f post.sh %postun -f postun.sh +%if %split_packages + +%files -f kernel-main.files +%else + +%files -f kernel-base.files +%endif + +%package -n kernel-debug-base +Summary: A Debug Version of the Kernel - base modules +License: GPL v2 only +Group: System/Kernel +Url: http://www.kernel.org/ +AutoReqProv: on +Requires(pre): coreutils awk +Requires(post): module-init-tools +Requires(post): perl-Bootloader +Requires(post): mkinitrd + +%description -n kernel-debug-base +This kernel has several debug facilities enabled that hurt performance. +Only use this kernel when investigating problems. + +This package contains only the base modules, required in all installs. + + + +Source Timestamp: 2008-09-29 15:31:19 +0200 + +%pre -n kernel-debug-base -f pre-base.sh + +%post -n kernel-debug-base -f post-base.sh +%if %split_packages -%files -f kernel.files +%files -n kernel-debug-base -f kernel-base.files +%endif + +%package -n kernel-debug-extra +Summary: A Debug Version of the Kernel - extra modules +License: GPL v2 only +Group: System/Kernel +Url: http://www.kernel.org/ +AutoReqProv: on +Requires: kernel-debug = %version-%release +Requires(pre): coreutils awk +Requires(post): module-init-tools +Requires(post): perl-Bootloader +Requires(post): mkinitrd +%description -n kernel-debug-extra +This kernel has several debug facilities enabled that hurt performance. +Only use this kernel when investigating problems. + +This package contains additional modules not supported by Novell. + + + +Source Timestamp: 2008-09-29 15:31:19 +0200 + +%post -n kernel-debug-extra -f post-extra.sh +%if %split_packages + +%files -n kernel-debug-extra -f kernel-extra.files +%endif ++++++ kernel-default.spec ++++++ --- /var/tmp/diff_new_pack.o25057/_old 2008-09-29 18:09:40.000000000 +0200 +++ /var/tmp/diff_new_pack.o25057/_new 2008-09-29 18:09:40.000000000 +0200 @@ -30,7 +30,6 @@ %define build_xen 0 %define build_um 0 %define build_vanilla 0 -%define build_nomodules 0 %if %{build_flavor} == "kdump" %define build_kdump 1 %endif @@ -43,19 +42,18 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%if %{build_flavor} == "ps3" -%define build_nomodules 1 -%endif Name: kernel-default Summary: The Standard Kernel for both Uniprocessor and Multiprocessor Systems Version: 2.6.27 -Release: 7 +Release: 8 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ AutoReqProv: on -BuildRequires: coreutils module-init-tools +BuildRequires: coreutils module-init-tools sparse +BuildRequires: fdupes +Requires: kernel-default-base = %version-%release Requires(pre): coreutils awk Requires(post): module-init-tools # This Requires is wrong, because the post/postun scripts have a @@ -68,6 +66,9 @@ Requires(post): perl-Bootloader Requires(post): mkinitrd Recommends: kerneloops +%if ! %sles_version +Recommends: kernel-default-extra +%endif #!BuildIgnore: perl-Bootloader mkinitrd %if ! 0%{?opensuse_bs} BuildRequires: kernel-dummy @@ -156,7 +157,6 @@ Source32: config-subst Source33: check-for-config-changes Source34: check-supported-list -Source35: install-configs Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where @@ -176,6 +176,7 @@ Source109: patches.kernel.org.tar.bz2 Source110: patches.apparmor.tar.bz2 Source111: patches.rt.tar.bz2 +Source112: patches.trace.tar.bz2 Source120: kabi.tar.bz2 %define my_builddir %_builddir/%{name}-%{version} BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -202,8 +203,21 @@ Obsoletes: rt2x00-kmp Obsoletes: rfswitch-kmp Obsoletes: uvcvideo-kmp -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks,install-configs}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks}) %define symbols %(set -- kernel-default default $(case default in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) +%define subarch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/default$') +# Define some CONFIG variables as rpm macros as well. (rpm cannot handle +# defining them all at once.) +%define config_vars CONFIG_MODULES +%{expand:%(eval "$(test -n "%subarch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%subarch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)} +%if %build_vanilla || %CONFIG_MODULES != "y" +%define split_packages 0 +%else +%define split_packages 1 +%endif +# Build with bash instead of sh as the shell: this turns on bash +# extensions like <(...). +%define _buildshell /bin/bash # Provide the exported symbols as "ksym(symbol) = hash" %define __find_provides %_sourcedir/find-provides %name # Will modules not listed in supported.conf abort the kernel build (0/1)? @@ -218,7 +232,7 @@ -Source Timestamp: 2008-09-15 10:58:05 +0200 +Source Timestamp: 2008-09-29 15:31:19 +0200 %prep if ! [ -e %_sourcedir/linux-2.6.26.tar.bz2 ]; then @@ -228,16 +242,21 @@ fi echo "Architecture symbol(s):" %symbols # Unpack all sources and patches -%setup -q -c -T -a 0 -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109 -a 110 -a 111 -a 120 -# Generate the list of supported modules -( %_sourcedir/guards %symbols < %_sourcedir/supported.conf +%setup -q -c -T -a 0 -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109 -a 110 -a 111 -a 112 -a 120 +supported_conf() { + %_sourcedir/guards %symbols $* < %_sourcedir/supported.conf | sort -u +} +# Generate the list of modules to be marked as supported +( supported_conf base for how in external; do - ( %_sourcedir/guards %symbols < %_sourcedir/supported.conf - %_sourcedir/guards %symbols < %_sourcedir/supported.conf - %_sourcedir/guards %symbols $how < %_sourcedir/supported.conf \ - ) | sort | uniq -u | sed -e 's:$: '"$how"':' + comm -2 -3 <(supported_conf base $how) <(supported_conf base) \ + | sed -e 's:$: '"$how"':' done -) | sed -e 's,.*/,,' | sort > linux-2.6.26/Module.supported +) | sed -e 's,.*/,,' -e 's,\.ko$,,' > linux-2.6.26/Module.supported +# Create grep pattern file for the modules to end up in the base package +comm -2 -3 <(supported_conf base) <(supported_conf) \ + | sed -e 's:.*/::' -e 's:^:\\/:' -e 's:$:\.ko$:' \ + > %my_builddir/grep-for-base-modules cd linux-2.6.26 # Find out for which architecture to build. We do this here, and use the # result in the %build and %install sections. @@ -245,10 +264,7 @@ # On architectures with a bi-arch or cross compiler, we can compile for # an architecture different from %arch. The location of the config file # tells us for which architecture to compile. -set -- $( - for config in $(%_sourcedir/guards %symbols < %_sourcedir/config.conf) ; do - [ ${config#*/} = default ] && echo $config - done) +set -- %subarch_flavor if [ $# -ne 1 ]; then echo "$# config files found for this spec file (but one needed)" >&2 exit 1 @@ -278,9 +294,9 @@ if [ -f %_sourcedir/localversion ] ; then cat %_sourcedir/localversion > localversion fi -%_sourcedir/install-configs %_sourcedir .. $RELEASE -config=arch/$subarch/defconfig.default -cat $config \ +cat ../config/%subarch_flavor \ +| %_sourcedir/config-subst CONFIG_LOCALVERSION '"'-$RELEASE-default'"' \ +| %_sourcedir/config-subst CONFIG_SUSE_KERNEL y \ %if 0%{?__debug_package:1} | %_sourcedir/config-subst CONFIG_DEBUG_INFO y \ %endif @@ -300,13 +316,14 @@ EOF %endif cat >> ../.rpm-defs <<EOF -KERNELRELEASE=2.6.27-rc6-$RELEASE-default +KERNELRELEASE=2.6.27-rc7-$RELEASE-default EOF %if 0%{?__debug_package:1} cat >> ../.rpm-defs <<EOF MAKE_ARGS="\$MAKE_ARGS CONFIG_DEBUG_INFO=y" EOF %endif +echo CONFIG_MODULES=%CONFIG_MODULES >> ../.rpm-defs %build source .rpm-defs @@ -341,7 +358,7 @@ export KBUILD_SYMTYPES=1 EOF source .kernel-binary.spec.buildenv -make %{?jobs:-j%jobs} all $MAKE_ARGS +make %{?jobs:-j%jobs} all $MAKE_ARGS CONFIG_DEBUG_SECTION_MISMATCH=y %install source .rpm-defs @@ -436,13 +453,16 @@ sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:default:g" \ - %_sourcedir/pre.sh > ../pre.sh -( cat %_sourcedir/functions.sh + %_sourcedir/pre.sh > ../pre-base.sh +for sub in '-base' '' '-extra'; do + ( cat %_sourcedir/functions.sh sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:default:g" \ + -e "s:@SUBPACKAGE@:kernel-default$sub:g" \ %_sourcedir/post.sh -) > ../post.sh + ) > ../post$sub.sh +done ( cat %_sourcedir/functions.sh sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ @@ -455,18 +475,16 @@ ln -s $image$suffix %buildroot/boot/$image$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix cp .config %buildroot/boot/config-$KERNELRELEASE -%if ! %build_nomodules +gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz +if [ $CONFIG_MODULES = y ]; then make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot -%endif -if ! %_sourcedir/check-supported-list \ + if ! %_sourcedir/check-supported-list \ %_sourcedir %buildroot/lib/modules/$KERNELRELEASE; then %if %supported_modules_check exit 1 %endif echo "Consistency check error: please update supported.conf." -fi -gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz -if grep -q '^CONFIG_MODULES=y$' .config; then + fi # Preserve exports from previous kernels when possible. old_symsets=%my_builddir/kabi/$SUBARCH/symsets-default.tar.gz [ -e $old_symsets ] || old_symsets= @@ -480,42 +498,41 @@ %buildroot/boot/symsets-$KERNELRELEASE.tar.gz \ $old_symsets || [ -n "$ignore_kabi_changes" -o %tolerate_kabi_changes -ge 8 ] -fi -# Also put the resulting file in $obj_dir/$SUBARCH/default -# so that kernel-source + kernel-default is sufficient for building -# modules that have modversions as well. -obj_dir=usr/src/linux-${KERNELRELEASE%%-default}-obj -mkdir -p %buildroot/$obj_dir/$SUBARCH/default -cp Module.symvers %buildroot/$obj_dir/$SUBARCH/default -# Table of types used in exported symbols (for modversion debugging). -%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-$KERNELRELEASE -if [ -s %buildroot/boot/symtypes-$KERNELRELEASE ]; then + # Also put the resulting file in $obj_dir/$SUBARCH/default + # so that kernel-source + kernel-default is sufficient for building + # modules that have modversions as well. + obj_dir=usr/src/linux-${KERNELRELEASE%%-default}-obj + mkdir -p %buildroot/$obj_dir/$SUBARCH/default + cp Module.symvers %buildroot/$obj_dir/$SUBARCH/default + # Table of types used in exported symbols (for modversion debugging). + %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-$KERNELRELEASE + if [ -s %buildroot/boot/symtypes-$KERNELRELEASE ]; then gzip -9 %buildroot/boot/symtypes-$KERNELRELEASE -else + else rm -f %buildroot/boot/symtypes-$KERNELRELEASE -fi -# Some architecture's $(uname -m) output is different from the ARCH -# parameter that needs to be passed to kbuild. Create symlinks from -# $(uname -m) to the ARCH directory. -[ -e %buildroot/$obj_dir/%_target_cpu ] \ + fi + # Some architecture's $(uname -m) output is different from the ARCH + # parameter that needs to be passed to kbuild. Create symlinks from + # $(uname -m) to the ARCH directory. + [ -e %buildroot/$obj_dir/%_target_cpu ] \ || ln -sf $SUBARCH %buildroot/$obj_dir/%_target_cpu %ifarch ppc ppc64 -[ -e %buildroot/$obj_dir/ppc ] \ + [ -e %buildroot/$obj_dir/ppc ] \ || ln -s $SUBARCH %buildroot/$obj_dir/ppc -[ -e %buildroot/$obj_dir/ppc64 ] \ + [ -e %buildroot/$obj_dir/ppc64 ] \ || ln -s $SUBARCH %buildroot/$obj_dir/ppc64 %endif -# Check for kABI changes -KABI=0 -if [ -e %my_builddir/kabi/$SUBARCH/symvers-default ]; then + # Check for kABI changes + KABI=0 + if [ -e %my_builddir/kabi/$SUBARCH/symvers-default ]; then %_sourcedir/kabi-checks \ %my_builddir/kabi/$SUBARCH/symvers-default \ Module.symvers \ %my_builddir/kabi/commonsyms \ %my_builddir/kabi/usedsyms \ || KABI=$? -fi -if [ $KABI -gt %tolerate_kabi_changes ]; then + fi + if [ $KABI -gt %tolerate_kabi_changes ]; then echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ "of %tolerate_kabi_changes. Please try to avoid the kABI changes." if [ ! -e %my_builddir/kabi/$SUBARCH/ignore-default -a \ @@ -527,68 +544,198 @@ fi # Indicate the ABI badness in build result emails. echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag -fi -if [ $KABI -ge 8 ]; then + fi + if [ $KABI -ge 8 ]; then echo "To find out which types have changed relative to the reference" \ "symbols, diff the symtypes.gz files of the reference kernel" \ "against the symtypes.gz file from this build." -fi -# We were building in %my_builddir/linux-2.6.26, but the sources will -# later be installed in /usr/src/linux-2.6.26-%source_rel. Fix up the -# build symlink. -# need to fake modules directory to satisfy scripts -%if %build_nomodules -mkdir -p %buildroot/lib/modules/$KERNELRELEASE/ -%endif -rm -f %buildroot/lib/modules/$KERNELRELEASE/{source,build} -ln -s /usr/src/linux-${KERNELRELEASE%%-default} \ + fi + # We were building in %my_builddir/linux-2.6.26, but the sources will + # later be installed in /usr/src/linux-2.6.26-%source_rel. Fix up the + # build symlink. + rm -f %buildroot/lib/modules/$KERNELRELEASE/{source,build} + ln -s /usr/src/linux-${KERNELRELEASE%%-default} \ %buildroot/lib/modules/$KERNELRELEASE/source -ln -s /$obj_dir/$SUBARCH/default \ + ln -s /$obj_dir/$SUBARCH/default \ %buildroot/lib/modules/$KERNELRELEASE/build -# Abort if there are any undefined symbols -msg="$(/sbin/depmod -F %buildroot/boot/System.map-$KERNELRELEASE \ + # Abort if there are any undefined symbols + msg="$(/sbin/depmod -F %buildroot/boot/System.map-$KERNELRELEASE \ -b %buildroot -ae $KERNELRELEASE 2>&1)" -if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then + if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then exit 1 -fi -# Create a dummy initrd with roughly the size the real one will have. -# That way, YaST will know that this package requires some additional -# space in /boot. -dd if=/dev/zero of=%buildroot/boot/initrd-$KERNELRELEASE \ + fi + # Create a dummy initrd with roughly the size the real one will have. + # That way, YaST will know that this package requires some additional + # space in /boot. + dd if=/dev/zero of=%buildroot/boot/initrd-$KERNELRELEASE \ bs=1024 seek=2047 count=1 -# Collect the file list. +%if %split_packages + # Generate the lists of supported and unsupported modules. + ( cd %buildroot + for module in $(find lib/modules/$KERNELRELEASE -type f -name '*.ko'); do + case "$(/sbin/modinfo -F supported $module)" in + (yes|external) + echo "/$module" >> %my_builddir/supported-modules + ;; + (*) + echo "/$module" >> %my_builddir/unsupported-modules + ;; + esac + done + ) + add_dependent_modules() { + local modules_dep=$1 + xargs make -rRs -f <(echo -e '%:\n\t@echo $@' ; cat $modules_dep) + } + modules_dep=%buildroot/lib/modules/$KERNELRELEASE/modules.dep + # Make sure that no supported modules depend on any unsupported modules. + dependent_unsupported_modules=$( + comm -3 <(sort %my_builddir/supported-modules) \ + <(cat %my_builddir/supported-modules \ + | add_dependent_modules $modules_dep \ + | sort)) + if [ -n "$dependent_unsupported_modules" ]; then + echo "The following unsupported modules are used by supported modules:" + echo "$dependent_unsupported_modules" + echo "Please fix supported.conf." + exit 1 + fi + # Compute the list of base modules: modules that core modules depend on + # implicitly are also core modules. + grep -f %my_builddir/grep-for-base-modules %my_builddir/supported-modules \ + | add_dependent_modules $modules_dep > %my_builddir/base-modules + # All supported modules which are not core modules belong in kernel-kernel-default. + comm -3 <(sort %my_builddir/supported-modules) \ + <(sort %my_builddir/base-modules) \ + > %my_builddir/main-modules +%else + ( cd %buildroot + find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' + ) > %my_builddir/base-modules +%endif + # Set up some module aliases + install -d -m 755 %buildroot/etc/modprobe.d/ + install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ +fi +add_dirs_to_filelist() { + local filelist + filelist=$(cat) + echo "$filelist" + # Below, we do this: + # - remove filelist macros + # - remove last pathname component + # - generate all parents and make the list unique + # - skip directories owned be other packages + # - add the %dir prefix (double-escaped for find and rpm) + echo "$filelist" \ + | sed -re 's:%%%%[a-z]+(\([^)]+\))? ?::g' \ + | sed -re 's:/[^/]+$::' \ + | sed -nre ':a; p; s:/[^/]+$::; ta' \ + | sort -u \ + | sed -r -e '\:^(|/boot|/etc|/lib(/modules|/firmware)?|/usr(/src)?)$:d' \ + | sed -e 's:^:%%%%dir :' +} +# Collect the file lists. ( cd %buildroot - echo "%%defattr(-, root, root)" + echo "%%%%defattr(-, root, root)" find boot \ - \( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \ + \( -type l -o -name 'initrd-*' \) -printf '%%%%%%%%ghost /%%p\n' -o \ -type f -printf '/%%p\n' + if [ $CONFIG_MODULES = y ]; then find lib/modules/$KERNELRELEASE \ - -type d -printf '%%%%dir /%%p\n' -o \ - -path '*/modules.*' -printf '%%%%ghost /%%p\n' -o \ - -printf '/%%p\n' - test -d lib/firmware && \ - find lib/firmware/$KERNELRELEASE \ - -type d -printf '%%%%dir /%%p\n' -o \ - -path '*/modules.*' -printf '%%%%ghost /%%p\n' -o \ + -type d -o \ + -path '*/modules.*' -printf '%%%%%%%%ghost /%%p\n' -o \ + -name '*.ko' -prune -o \ -printf '/%%p\n' + cat %my_builddir/base-modules + echo '%%%%config /etc/modprobe.d/module-renames' find $obj_dir \ - -type d -printf '%%%%dir /%%p\n' -o \ + -type d -o \ + -printf '/%%p\n' + fi + test -d lib/firmware/$KERNELRELEASE && \ + find lib/firmware/$KERNELRELEASE \ + -type d -o \ -printf '/%%p\n' - echo '%%dir /etc/modprobe.d/' - echo '%%config /etc/modprobe.d/module-renames' if [ -e .%_docdir/%name ]; then - echo "%%doc %_docdir/%name" + echo "%%%%doc %_docdir/%name" fi -) > %my_builddir/kernel.files -# Set up some module aliases -install -d -m 755 %buildroot/etc/modprobe.d/ -install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ - -%pre -f pre.sh +) | add_dirs_to_filelist > %my_builddir/kernel-base.files +%if %split_packages + ( echo "%%%%defattr(-, root, root)" + cat %my_builddir/main-modules + ) | add_dirs_to_filelist > %my_builddir/kernel-main.files + ( echo "%%%%defattr(-, root, root)" + cat %my_builddir/unsupported-modules + ) | add_dirs_to_filelist > %my_builddir/kernel-extra.files +%endif +# Hardlink duplicate files automatically (from package fdupes): It doesn't safe +# much, but it keeps rpmlint from breaking the package build. +%fdupes $RPM_BUILD_ROOT +cd %my_builddir # it helps if rpm can find the file lists ... %post -f post.sh %postun -f postun.sh +%if %split_packages -%files -f kernel.files +%files -f kernel-main.files +%else + +%files -f kernel-base.files +%endif +%package -n kernel-default-base +Summary: The Standard Kernel for both Uniprocessor and Multiprocessor Systems - base modules +License: GPL v2 only +Group: System/Kernel +Url: http://www.kernel.org/ +AutoReqProv: on +Requires(pre): coreutils awk +Requires(post): module-init-tools +Requires(post): perl-Bootloader +Requires(post): mkinitrd + +%description -n kernel-default-base +The standard kernel for both uniprocessor and multiprocessor systems. + +This package contains only the base modules, required in all installs. + + + +Source Timestamp: 2008-09-29 15:31:19 +0200 + +%pre -n kernel-default-base -f pre-base.sh + +%post -n kernel-default-base -f post-base.sh +%if %split_packages + +%files -n kernel-default-base -f kernel-base.files +%endif + +%package -n kernel-default-extra +Summary: The Standard Kernel for both Uniprocessor and Multiprocessor Systems - extra modules +License: GPL v2 only +Group: System/Kernel +Url: http://www.kernel.org/ +AutoReqProv: on +Requires: kernel-default = %version-%release +Requires(pre): coreutils awk +Requires(post): module-init-tools +Requires(post): perl-Bootloader +Requires(post): mkinitrd + +%description -n kernel-default-extra +The standard kernel for both uniprocessor and multiprocessor systems. + +This package contains additional modules not supported by Novell. + + + +Source Timestamp: 2008-09-29 15:31:19 +0200 + +%post -n kernel-default-extra -f post-extra.sh +%if %split_packages + +%files -n kernel-default-extra -f kernel-extra.files +%endif ++++++ kernel-dummy.spec ++++++ --- /var/tmp/diff_new_pack.o25057/_old 2008-09-29 18:09:40.000000000 +0200 +++ /var/tmp/diff_new_pack.o25057/_new 2008-09-29 18:09:40.000000000 +0200 @@ -23,7 +23,7 @@ Name: kernel-dummy Summary: Internal dummy package for synchronizing release numbers Version: 2.6.27 -Release: 7 +Release: 8 License: GPL v2 only Group: System/Kernel AutoReqProv: off @@ -36,7 +36,7 @@ -------- Andreas Gruenbacher <agruen@suse.de> -Source Timestamp: 2008-09-15 10:58:05 +0200 +Source Timestamp: 2008-09-29 15:31:19 +0200 %install rm -rf %buildroot @@ -46,8 +46,385 @@ %files %defattr(-, root, root) /etc/dummy - %changelog +* Mon Sep 29 2008 agruen@suse.de +- Do not split kernels which have modules disabled (kernel-ps3) + or which do not differentiate between supported and unsupported + modules (kernel-vanilla). +* Mon Sep 29 2008 hare@suse.de +- patches.drivers/open-fcoe-dcb-support: Fix section annotation + for ixgbe. +- patches.fixes/scsi-enhance-error-codes: Add missing hunk. +- patches.fixes/open-iscsi-git-update: Open-iSCSI updates + (FATE#304283). +- patches.kernel.org/gdth-section-conflict: Fixup gdth + section annotations. +* Mon Sep 29 2008 aj@suse.de +- Silence /etc/rpm/macros.kernel-source via rpmlintrc. +* Mon Sep 29 2008 jbeulich@novell.com +- Enable Solarflare driver link and resource driver patches. +- Update x86 config files. +* Mon Sep 29 2008 agruen@suse.de +- rpm/kernel-source.spc.in: Try to get rid of a hack that makes + uname -r pretend in build environments that the kernel from + the installed kernel-source package is the running kernel: + packages assuming this are completely broken ans should really + be fixed. +* Mon Sep 29 2008 agruen@suse.de +- rpm/kernel-source.spec.in: Prepare for the upcoming introduction + of kernel-source-rt (and kernel-syms-rt) for producing KMPs for + real-time kernels. +- rpm/install-configs: Remove; this script didn't improve things. +* Sun Sep 28 2008 aj@suse.de +- rpm/kernel-source.rpmlintrc: New file to silence warnings about + zero size files +- rpm/kernel-source.spec.in: Install it. +- rpm/kernel-source.spec.in: Make /etc/rpm/macros.kernel-source + a config file to silence rpmlint. +* Sun Sep 28 2008 jdelvare@suse.de +- supported.conf: Update the list of i2c bus drivers. + - i2c-i810, i2c-prosavage and i2c-savage4 are gone. + - i2c-isch and i2c-nforce2-s4985 are new, mark as supported. +* Sun Sep 28 2008 aj@suse.de +- rpm/kernel-source.spec.in: Do not package .gitignore files. +* Sun Sep 28 2008 agruen@suse.de +- Fix CONFIG_MODULES=n case. +- config.conf: Some cleanups. +* Sat Sep 27 2008 agruen@suse.de +- Split the binary kernel packages into three parts: + + kernel-$flavor-base: very reduced hardware support, intended + to be used in virtual machine images + + kernel-$flavor: extends the base package; contains all kernel + modules we can support + + kernel-$flavor-extra: all other kernel modules which may be + useful, but which we cannot support. +* Sat Sep 27 2008 agruen@suse.de +- Hardlink duplicate files automatically: It doesn't save much, + but it keeps rpmlint from breaking the package build. +* Sat Sep 27 2008 agruen@suse.de +- Add consistency check: supported modules must not depend on + unsupported ones ... and guess what, there was a large number of + such modules. Fix this by adding all the dependent modules to + supported.conf. +* Sat Sep 27 2008 knikanth@suse.de +- patches.suse/dm-barrier-single-device: Implement barrier + support for single device DM devices (FATE#304489). +* Sat Sep 27 2008 jeffm@suse.de +- scripts/tar-up_and_run_mbuild.sh: Added -xen flavor to default + mbuild spec list. +* Sat Sep 27 2008 jeffm@suse.de +- patches.xen/xen-e1000e_Export_set_memory_ro-rw: Export + set_memory_ro() and set_memory_rw() calls for xen. (bnc#425480). +* Sat Sep 27 2008 kkeil@suse.de +- patches.suse/e1000e_mmap_range_chk:check ranges in pci_mmap + * updated version with better reporting (bnc#425480) +* Fri Sep 26 2008 kkeil@suse.de +- patches to track down and fix the e1000e NVM corruption + (bnc#425480) +- patches.suse/e1000e_allow_bad_checksum: e1000e: allow bad + checksum +- patches.suse/e1000e_call_dump_eeprom: e1000e: dump eeprom to + dmesg for ich8/9 +- patches.suse/e1000e_debug_contention_on_NVM_SWFLAG: e1000e: + debug contention on NVM SWFLAG +- patches.suse/e1000e_do_not_ever_sleep_in_interrupt_context: + e1000e: do not ever sleep in interrupt context +- patches.suse/e1000e_drop_stats_lock: e1000e: drop stats lock +- patches.suse/e1000e_Export_set_memory_ro-rw: Export + set_memory_ro() and set_memory_rw() calls +- patches.suse/e1000e_fix_lockdep_issues: e1000e: fix lockdep + issues +- patches.suse/e1000e_mmap_range_chk: check ranges in pci_mmap +- patches.suse/e1000e_reset_swflag_after_resetting_hardware: + e1000e: reset swflag after resetting hardware +- patches.suse/e1000e_update_version: update version +- patches.suse/e1000e_use_set_memory_ro-rw_to_protect_flash_memory: + e1000e: Use set_memory_ro()/set_memory_rw() to protect flash + memory +- cleanup old not longer used patches + * patches.drivers/e1000-7.6.5-napi-tail.patch + * patches.drivers/e1000-7.6.9.2 + * patches.drivers/e1000-7.6.9.2-napi +* Fri Sep 26 2008 kkeil@suse.de +- Enable CONFIG_SGI_IOC4=m in x86_64 (bnc#430275) +* Fri Sep 26 2008 jeffm@suse.de +- patches.arch/acpi-export-hotplug_execute: acpi: export + acpi_os_hotplug_execute. +* Fri Sep 26 2008 jeffm@suse.de +- patches.xen/xen-rwlocks-enable-interrupts: add missing + __raw_{read,write}_lock_flags to xen's asm/spinlock.h. +* Fri Sep 26 2008 jeffm@suse.de +- patches.arch/acpi-bay-remove-from-makefile: acpi: remove bay.c + from makefile. +* Fri Sep 26 2008 jeffm@suse.de +- rpm/kernel-binary.spec.in: Disabled sparse checking. Too many + false positives. +* Fri Sep 26 2008 trenn@suse.de + No functional change: +- patches.arch/acpi_thermal_passive_blacklist.patch: Avoid + critical temp shutdowns on specific ThinkPad T4x(p) and R40 + (https://bugzilla.novell.com/show_bug.cgi?id=333043). + Dock bug fixes (kacpid runs amok on Dells after suspend): +- patches.arch/acpi-dock-avoid-check-_STA-method.patch: avoid + check _STA method (fate#304731,bnc#401740). +- patches.arch/acpi-dock-fix-eject-request-process.patch: fix + eject request process (fate#304731,bnc#401740). + More Dock improvements, unrelated to above fixes: +- patches.arch/acpi-bay-remove-useless-code.patch: remove useless + code (fate#304731,bnc#401740). +- patches.arch/acpi-dock-Fix-duplicate-notification-handler-register.patch: + Fix duplicate notification handler register + (fate#304731,bnc#401740). +- patches.arch/acpi-dock-_LCK-support-for-dock.patch: add _LCK + support for dock (fate#304731,bnc#401740). +- patches.arch/acpi-dock-fix-for-bay-in-a-dock-station.patch: + fix for bay in a dock station (fate#304731,bnc#401740). +- patches.arch/acpi-dock-fix-hotplug-race.patch: fix hotplug race + (fate#304731,bnc#401740). +- patches.arch/acpi-dock-introduce-.uevent-for-devices-in-dock.patch: + introduce .uevent for devices in dock (fate#304731,bnc#401740). +- patches.arch/acpi-libata-hotplug-to-align-with-dock-driver.patch: + libata hotplug to align with dock driver + (fate#304731,bnc#401740). +- patches.arch/acpi-dock-makeing-dock-driver-supports-bay-and-battery-hotplug.patch: + makeing dock driver supports bay and battery hotplug + (fate#304731,bnc#401740). +- patches.arch/acpi-dock-add-type-sysfs-file-for-dock.patch: + add 'type' sysfs file for dock (fate#304731,bnc#401740). +- patches.fixes/acpi_use_acpi_exception.patch: ACPI dock/bay: + Use ACPI_EXCEPTION instead of printk(KERN_ERR. +* Fri Sep 26 2008 jeffm@suse.de +- Update config files: NFS_SWAP=y +* Fri Sep 26 2008 ptesarik@suse.cz +- patches.suse/rwlocks-enable-interrupts: Allow rwlocks to + re-enable interrupts (bnc#387784). +- patches.arch/ia64-rwlocks-enable-interrupts: ia64: re-enable + interrupts when waiting for a rwlock (bnc#387784). +* Fri Sep 26 2008 sjayaraman@suse.de +- Add Swap over NFS patchset. +- Adjust patches.xen/xen3-auto-common.diff to avoid conflict on skbuff.h + as both xen and swap-over-nfs want to add some bits to the skbuff structure. +- patches.suse/SoN-01-mm-gfp-to-alloc_flags.patch: mm: + gfp_to_alloc_flags() (FATE#303834). +- patches.suse/SoN-02-mm-setup_per_zone_pages_min.patch: mm: + serialize access to min_free_kbytes (FATE#303834). +- patches.suse/SoN-03-doc.patch: swap over network documentation + (FATE#303834). +- patches.suse/SoN-04-mm-gfp-to-alloc_flags-expose.patch: mm: + expose gfp_to_alloc_flags() (FATE#303834). +- patches.suse/SoN-05-page_alloc-reserve.patch: mm: tag reseve + pages (FATE#303834). +- patches.suse/SoN-06-reserve-slub.patch: mm: slb: add knowledge + of reserve pages (FATE#303834). +- patches.suse/SoN-07-mm-kmem_estimate_pages.patch: mm: + kmem_alloc_estimate() (FATE#303834). +- patches.suse/SoN-08-mm-PF_MEMALLOC-softirq.patch: mm: allow + PF_MEMALLOC from softirq context (FATE#303834). +- patches.suse/SoN-09-mm-page_alloc-emerg.patch: mm: emergency + pool (FATE#303834). +- patches.suse/SoN-10-global-ALLOC_NO_WATERMARKS.patch: mm: + system wide ALLOC_NO_WATERMARK (FATE#303834). +- patches.suse/SoN-11-mm-page_alloc-GFP_EMERGENCY.patch: mm: + __GFP_MEMALLOC (FATE#303834). +- patches.suse/SoN-12-mm-reserve.patch: mm: memory reserve + management (FATE#303834). +- patches.suse/SoN-13-mm-selinux-emergency.patch: selinux: + tag avc cache alloc as non-critical (FATE#303834). +- patches.suse/SoN-14-net-backlog.patch: net: wrap + sk->sk_backlog_rcv() (FATE#303834). +- patches.suse/SoN-15-net-ps_rx.patch: net: packet split receive + api (FATE#303834). +- patches.suse/SoN-16-net-sk_allocation.patch: net: + sk_allocation() - concentrate socket related allocations + (FATE#303834). +- patches.suse/SoN-17-netvm-reserve.patch: netvm: network reserve + infrastructure (FATE#303834). +- patches.suse/SoN-18-netvm-reserve-inet.patch: netvm: INET + reserves. (FATE#303834). +- patches.suse/SoN-19-netvm-skbuff-reserve.patch: netvm: hook + skb allocation to reserves (FATE#303834). +- patches.suse/SoN-20-netvm-sk_filter.patch: netvm: filter + emergency skbs. (FATE#303834). +- patches.suse/SoN-21-netvm-tcp-deadlock.patch: netvm: prevent + a stream specific deadlock (FATE#303834). +- patches.suse/SoN-22-emergency-nf_queue.patch: netfilter: + NF_QUEUE vs emergency skbs (FATE#303834). +- patches.suse/SoN-23-netvm.patch: netvm: skb processing + (FATE#303834). +- patches.suse/SoN-24-mm-swapfile.patch: mm: add support for + non block device backed swap files (FATE#303834). +- patches.suse/SoN-25-mm-page_file_methods.patch: mm: methods + for teaching filesystems about PG_swapcache pages (FATE#303834). +- patches.suse/SoN-26-nfs-swapcache.patch: nfs: teach the NFS + client how to treat PG_swapcache pages (FATE#303834). +- patches.suse/SoN-27-nfs-swapper.patch: nfs: disable data cache + revalidation for swapfiles (FATE#303834). +- patches.suse/SoN-28-nfs-swap_ops.patch: nfs: enable swap on NFS + (FATE#303834). +- patches.suse/SoN-29-nfs-alloc-recursions.patch: nfs: fix various + memory recursions possible with swap over NFS. (FATE#303834). +- patches.xen/xen3-auto-common.diff: xen3 common. +* Fri Sep 26 2008 ptesarik@suse.cz +- split patches.arch/s390-01-01-self-ptrace-v3.patch to make it + more obvious that the patch is not constrained to s390. + The new series is: + patches.suse/self-ptrace.patch: the generic pieces + patches.arch/x86-self-ptrace.patch: implementation for x86 + patches.arch/s390-01-01-self-ptrace-v3.patch: dtto for s390 +* Thu Sep 25 2008 jbeulich@novell.com +- Update Xen patches to 2.6.27-rc7 and c/s 676. +* Thu Sep 25 2008 olh@suse.de +- add patches.arch/ppc64-rpanote-relocate-firmware.patch + update RPA note for firmware relocation (bnc#427960 - LTC48297) +* Wed Sep 24 2008 jblunck@suse.de + This adds some tracepoint instrumentation taken from the LTTng patch + series. Tracepoints are enabled for kernel-debug and kernel-trace only. I + disabled ftrace for all flavors except kernel-debug and kernel-trace as well. +- Update config files. +- rpm/kernel-source.spec.in,kernel-binary.spec.in, config.conf: Add trace + flavor +- patches.fixes/ia64-sparse-fixes.diff: ia64-kvm: fix sparse + warnings. +- patches.xen/xen3-fixup-common: rediff +- patches.xen/xen3-auto-common.diff: rediff +- patches.xen/xen3-patch-2.6.21: rediff +- patches.xen/xen3-patch-2.6.26: rediff +- patches.trace/rcu-read-sched.patch +- patches.trace/markers-use-rcu-read-lock-sched.patch +- patches.trace/tracepoints.patch +- patches.trace/tracepoints-use-table-size-macro.patch +- patches.trace/tracepoints-documentation.patch +- patches.trace/tracepoints-tracepoint-synchronize-unregister.patch +- patches.trace/tracepoints-documentation-fix-teardown.patch +- patches.trace/tracepoints-samples.patch +- patches.trace/tracepoints-samples-fix-teardown.patch +- patches.trace/lttng-instrumentation-irq.patch +- patches.trace/lttng-instrumentation-scheduler.patch +- patches.trace/lttng-instrumentation-timer.patch +- patches.trace/lttng-instrumentation-kernel.patch +- patches.trace/lttng-instrumentation-filemap.patch +- patches.trace/lttng-instrumentation-swap.patch +- patches.trace/lttng-instrumentation-memory.patch +- patches.trace/lttng-instrumentation-page_alloc.patch +- patches.trace/lttng-instrumentation-hugetlb.patch +- patches.trace/lttng-instrumentation-net.patch +- patches.trace/lttng-instrumentation-ipv4.patch +- patches.trace/lttng-instrumentation-ipv6.patch +- patches.trace/lttng-instrumentation-socket.patch +- patches.trace/lttng-instrumentation-fs.patch +- patches.trace/lttng-instrumentation-ipc.patch +- patches.trace/ftrace-port-to-tracepoints.patch +- patches.trace/ftrace-framepointer.diff +* Tue Sep 23 2008 jjolly@suse.de +- patches.arch/s390-01-03-cmm2-v2.patch: kernel (new function): + Collaborative Memory Management Stage II (bnc#417244) +- patches.xen/xen3-auto-common.diff: Modified patch to allow for + the new patch +* Tue Sep 23 2008 jeffm@suse.de +- rpm/kernel-binary.spec.in: Enable sparse checking and section + mismatch checking. +* Tue Sep 23 2008 jeffm@suse.de +- patches.kernel.org/arch-include-asm-fixes: kbuild: Properly + handle arch/$arch/include/asm (bnc#427473). +* Mon Sep 22 2008 jeffm@suse.de +- patches.fixes/ext2-avoid-printk-flood-with-dir-corruption: + ext2: Avoid printk floods in the face of directory corruption + (bnc#427244 CVE-2008-3528). +- patches.fixes/ext3-avoid-printk-flood-with-dir-corruption: + ext3: Avoid printk floods in the face of directory corruption + (bnc#427244 CVE-2008-3528). +* Mon Sep 22 2008 jeffm@suse.de +- Update to 2.6.27-rc7. + - Eliminated 2 patches. + - patches.arch/s390-01-04-fcpperf-4.patch: Fixed up context. +* Mon Sep 22 2008 trenn@suse.de + Workaround for ThinkPad brightness switching: +- patches.arch/acpi_video_thinkpad_exclude_IGD_devices.patch: + Do not use video backlight switching for Lenovo ThinkPads. + Commented out for now, possibly to be included later +- patches.drivers/cpufreq_add_cpu_number_paramater_1.patch: + cpufreq: Add a cpu parameter to __cpufreq_driver_getavg().. +- patches.drivers/cpufreq_add_idle_microaccounting_6.patch: + cpufreq,ondemand: Use get_cpu_idle_time_us() to get + micro-accounted idle information. +- patches.drivers/cpufreq_change_load_calculation_2.patch: + cpufreq, ondemand: Change the load calculation, optimizing + for dependent cpus. +- patches.drivers/cpufreq_changes_to_get_cpu_idle_us_5.patch: + export get_cpu_idle_time_us() . +- patches.drivers/cpufreq_get_cpu_idle_time_changes_3.patch: + cpufreq,ondemand: Prepare changes for doing micro-accounting. +- patches.drivers/cpufreq_parameterize_down_differential_4.patch: + cpufreq, ondemand: Use a parameter for down differential. + Added CONFIG_PCIEASPM for rt, xen, powerpc and IA64 to be more + consistent across different kernel flavors as suggested on the + kernel list: +- Update config files. +* Mon Sep 22 2008 hare@suse.de +- patches.drivers/open-fcoe-libfc: Fix build error on IA64. +- patches.fixes/scsi-terminate-target-reset: Target reset hangs + (bnc#427267). +- supported.conf: Update to include supported SCSI adapters. +* Fri Sep 19 2008 jbeulich@novell.com +- patches.suse/no-frame-pointer-select: Re-enable after removing FTRACE + related change. +- Update x86 non-debug config files: Turn off FRAME_POINTER and FTRACE. +* Fri Sep 19 2008 neilb@suse.de +- patches.fixes/md-Allow-metadata_version-to-be-updated-for-externa.patch: + md: Allow metadata_version to be updated for externally managed + metadata. (FATE#304218). +- patches.fixes/md-Don-t-try-to-set-an-array-to-read-auto-if-it-i.patch: + md: Don't try to set an array to 'read-auto' if it is already + in that state. (FATE#304218). +* Thu Sep 18 2008 jbeulich@novell.com +- patches.suse/no-frame-pointer-select: Disable. +- Re-enable CONFIG_FRAME_POINTER in x86 config files. +* Thu Sep 18 2008 jbeulich@novell.com +- Update i386 and x86-64 config files (disable CONFIG_FRAME_POINTER in + non-debug configs). +- patches.suse/stack-unwind: Add missing put_cpu()-s for x86-64. +- patches.suse/no-frame-pointer-select: Fix stack unwinder Kconfig + (bnc#402518). +* Thu Sep 18 2008 hare@suse.de +- Update config files. +- patches.drivers/open-fcoe-driver: fcoe: Fibre Channel over + Ethernet driver (FATE#303913). +- patches.drivers/open-fcoe-libfc: libfc: a modular software + Fibre Channel implementation (FATE#303913). +- patches.drivers/open-fcoe-header-files: FC protocol definition + header files (FATE#303913). +- patches.drivers/open-fcoe-dcb-support: FCoE: Add DCB support + (FATE#303913). +- patches.drivers/ixgbe-fcoe-bugfixes: ixgbe: Bugfixes for FCoE. +- patches.fixes/vlan-gso-size-fix: vlan: device not reading gso + max size of parent. (FATE#303913). +- patches.fixes/pkt_action-skbedit: pkt_action: add new action + skbedit. +- patches.fixes/pkt_sched_multiq_support: pkt_sched: Add + multiqueue scheduler support (FATE#303913). +- supported.conf: Update to include FCoE and device_handler + modules +* Wed Sep 17 2008 jbeulich@novell.com +- supported.conf: adjust name of ide-cd (is now ide-cd_mod). +* Wed Sep 17 2008 hare@suse.de +- patches.drivers/qla2xxx-defer-risc-interrupt-enablement: + qla2xxx: Defer enablement of RISC interrupts until ISP + initialization completes (FATE#304113). +- patches.drivers/qla2xxx-8.02.01-k8-update: Update qla2xxx to + 8.02.01-k8 (FATE#304113). +* Wed Sep 17 2008 hare@suse.de +- patches.fixes/scsi-retry-hardware-error: make scsi_check_sense + HARDWARE_ERROR return ADD_TO_MLQUEUE on retry (FATE#304042) +* Tue Sep 16 2008 olh@suse.de +- disable CONFIG_SPARSEMEM_VMEMMAP on ppc64 to allow memory remove + (bnc#417537) +* Mon Sep 15 2008 jkosina@suse.de +- Update config files (build elousb driver as module) +- patches.drivers/elousb.patch: Elo USB touchscreen driver + (FATE#304972). +* Mon Sep 15 2008 hare@suse.de +- patches.fixes/dm-mpath-abort-queue: Abort queued requests for + multipath (FATE#304151). * Mon Sep 15 2008 hare@suse.de - Update config files: Disable CONFIG_OCFS2_COMPAT_JBD * Mon Sep 15 2008 hare@suse.de ++++++ kernel-kdump.spec ++++++ --- /var/tmp/diff_new_pack.o25057/_old 2008-09-29 18:09:41.000000000 +0200 +++ /var/tmp/diff_new_pack.o25057/_new 2008-09-29 18:09:41.000000000 +0200 @@ -30,7 +30,6 @@ %define build_xen 0 %define build_um 0 %define build_vanilla 0 -%define build_nomodules 0 %if %{build_flavor} == "kdump" %define build_kdump 1 %endif @@ -43,19 +42,18 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%if %{build_flavor} == "ps3" -%define build_nomodules 1 -%endif Name: kernel-kdump Summary: kernel for kdump Version: 2.6.27 -Release: 7 +Release: 8 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ AutoReqProv: on -BuildRequires: coreutils module-init-tools +BuildRequires: coreutils module-init-tools sparse +BuildRequires: fdupes +Requires: kernel-kdump-base = %version-%release Requires(pre): coreutils awk Requires(post): module-init-tools # This Requires is wrong, because the post/postun scripts have a @@ -68,6 +66,9 @@ Requires(post): perl-Bootloader Requires(post): mkinitrd Recommends: kerneloops +%if ! %sles_version +Recommends: kernel-kdump-extra +%endif #!BuildIgnore: perl-Bootloader mkinitrd %if ! 0%{?opensuse_bs} BuildRequires: kernel-dummy @@ -134,7 +135,6 @@ Source32: config-subst Source33: check-for-config-changes Source34: check-supported-list -Source35: install-configs Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where @@ -154,6 +154,7 @@ Source109: patches.kernel.org.tar.bz2 Source110: patches.apparmor.tar.bz2 Source111: patches.rt.tar.bz2 +Source112: patches.trace.tar.bz2 Source120: kabi.tar.bz2 %define my_builddir %_builddir/%{name}-%{version} BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -180,8 +181,21 @@ Obsoletes: rt2x00-kmp Obsoletes: rfswitch-kmp Obsoletes: uvcvideo-kmp -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks,install-configs}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks}) %define symbols %(set -- kernel-kdump kdump $(case kdump in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) +%define subarch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/kdump$') +# Define some CONFIG variables as rpm macros as well. (rpm cannot handle +# defining them all at once.) +%define config_vars CONFIG_MODULES +%{expand:%(eval "$(test -n "%subarch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%subarch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)} +%if %build_vanilla || %CONFIG_MODULES != "y" +%define split_packages 0 +%else +%define split_packages 1 +%endif +# Build with bash instead of sh as the shell: this turns on bash +# extensions like <(...). +%define _buildshell /bin/bash # Provide the exported symbols as "ksym(symbol) = hash" %define __find_provides %_sourcedir/find-provides %name # Will modules not listed in supported.conf abort the kernel build (0/1)? @@ -199,7 +213,7 @@ -Source Timestamp: 2008-09-15 10:58:05 +0200 +Source Timestamp: 2008-09-29 15:31:19 +0200 %prep if ! [ -e %_sourcedir/linux-2.6.26.tar.bz2 ]; then @@ -209,16 +223,21 @@ fi echo "Architecture symbol(s):" %symbols # Unpack all sources and patches -%setup -q -c -T -a 0 -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109 -a 110 -a 111 -a 120 -# Generate the list of supported modules -( %_sourcedir/guards %symbols < %_sourcedir/supported.conf +%setup -q -c -T -a 0 -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109 -a 110 -a 111 -a 112 -a 120 +supported_conf() { + %_sourcedir/guards %symbols $* < %_sourcedir/supported.conf | sort -u +} +# Generate the list of modules to be marked as supported +( supported_conf base for how in external; do - ( %_sourcedir/guards %symbols < %_sourcedir/supported.conf - %_sourcedir/guards %symbols < %_sourcedir/supported.conf - %_sourcedir/guards %symbols $how < %_sourcedir/supported.conf \ - ) | sort | uniq -u | sed -e 's:$: '"$how"':' + comm -2 -3 <(supported_conf base $how) <(supported_conf base) \ + | sed -e 's:$: '"$how"':' done -) | sed -e 's,.*/,,' | sort > linux-2.6.26/Module.supported +) | sed -e 's,.*/,,' -e 's,\.ko$,,' > linux-2.6.26/Module.supported +# Create grep pattern file for the modules to end up in the base package +comm -2 -3 <(supported_conf base) <(supported_conf) \ + | sed -e 's:.*/::' -e 's:^:\\/:' -e 's:$:\.ko$:' \ + > %my_builddir/grep-for-base-modules cd linux-2.6.26 # Find out for which architecture to build. We do this here, and use the # result in the %build and %install sections. @@ -226,10 +245,7 @@ # On architectures with a bi-arch or cross compiler, we can compile for # an architecture different from %arch. The location of the config file # tells us for which architecture to compile. -set -- $( - for config in $(%_sourcedir/guards %symbols < %_sourcedir/config.conf) ; do - [ ${config#*/} = kdump ] && echo $config - done) +set -- %subarch_flavor if [ $# -ne 1 ]; then echo "$# config files found for this spec file (but one needed)" >&2 exit 1 @@ -259,9 +275,9 @@ if [ -f %_sourcedir/localversion ] ; then cat %_sourcedir/localversion > localversion fi -%_sourcedir/install-configs %_sourcedir .. $RELEASE -config=arch/$subarch/defconfig.kdump -cat $config \ +cat ../config/%subarch_flavor \ +| %_sourcedir/config-subst CONFIG_LOCALVERSION '"'-$RELEASE-kdump'"' \ +| %_sourcedir/config-subst CONFIG_SUSE_KERNEL y \ %if 0%{?__debug_package:1} | %_sourcedir/config-subst CONFIG_DEBUG_INFO y \ %endif @@ -281,13 +297,14 @@ EOF %endif cat >> ../.rpm-defs <<EOF -KERNELRELEASE=2.6.27-rc6-$RELEASE-kdump +KERNELRELEASE=2.6.27-rc7-$RELEASE-kdump EOF %if 0%{?__debug_package:1} cat >> ../.rpm-defs <<EOF MAKE_ARGS="\$MAKE_ARGS CONFIG_DEBUG_INFO=y" EOF %endif +echo CONFIG_MODULES=%CONFIG_MODULES >> ../.rpm-defs %build source .rpm-defs @@ -322,7 +339,7 @@ export KBUILD_SYMTYPES=1 EOF source .kernel-binary.spec.buildenv -make %{?jobs:-j%jobs} all $MAKE_ARGS +make %{?jobs:-j%jobs} all $MAKE_ARGS CONFIG_DEBUG_SECTION_MISMATCH=y %install source .rpm-defs @@ -417,13 +434,16 @@ sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:kdump:g" \ - %_sourcedir/pre.sh > ../pre.sh -( cat %_sourcedir/functions.sh + %_sourcedir/pre.sh > ../pre-base.sh +for sub in '-base' '' '-extra'; do + ( cat %_sourcedir/functions.sh sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:kdump:g" \ + -e "s:@SUBPACKAGE@:kernel-kdump$sub:g" \ %_sourcedir/post.sh -) > ../post.sh + ) > ../post$sub.sh +done ( cat %_sourcedir/functions.sh sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ @@ -436,18 +456,16 @@ ln -s $image$suffix %buildroot/boot/$image$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix cp .config %buildroot/boot/config-$KERNELRELEASE -%if ! %build_nomodules +gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz +if [ $CONFIG_MODULES = y ]; then make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot -%endif -if ! %_sourcedir/check-supported-list \ + if ! %_sourcedir/check-supported-list \ %_sourcedir %buildroot/lib/modules/$KERNELRELEASE; then %if %supported_modules_check exit 1 %endif echo "Consistency check error: please update supported.conf." -fi -gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz -if grep -q '^CONFIG_MODULES=y$' .config; then + fi # Preserve exports from previous kernels when possible. old_symsets=%my_builddir/kabi/$SUBARCH/symsets-kdump.tar.gz [ -e $old_symsets ] || old_symsets= @@ -461,42 +479,41 @@ %buildroot/boot/symsets-$KERNELRELEASE.tar.gz \ $old_symsets || [ -n "$ignore_kabi_changes" -o %tolerate_kabi_changes -ge 8 ] -fi -# Also put the resulting file in $obj_dir/$SUBARCH/kdump -# so that kernel-source + kernel-kdump is sufficient for building -# modules that have modversions as well. -obj_dir=usr/src/linux-${KERNELRELEASE%%-kdump}-obj -mkdir -p %buildroot/$obj_dir/$SUBARCH/kdump -cp Module.symvers %buildroot/$obj_dir/$SUBARCH/kdump -# Table of types used in exported symbols (for modversion debugging). -%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-$KERNELRELEASE -if [ -s %buildroot/boot/symtypes-$KERNELRELEASE ]; then + # Also put the resulting file in $obj_dir/$SUBARCH/kdump + # so that kernel-source + kernel-kdump is sufficient for building + # modules that have modversions as well. + obj_dir=usr/src/linux-${KERNELRELEASE%%-kdump}-obj + mkdir -p %buildroot/$obj_dir/$SUBARCH/kdump + cp Module.symvers %buildroot/$obj_dir/$SUBARCH/kdump + # Table of types used in exported symbols (for modversion debugging). + %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-$KERNELRELEASE + if [ -s %buildroot/boot/symtypes-$KERNELRELEASE ]; then gzip -9 %buildroot/boot/symtypes-$KERNELRELEASE -else + else rm -f %buildroot/boot/symtypes-$KERNELRELEASE -fi -# Some architecture's $(uname -m) output is different from the ARCH -# parameter that needs to be passed to kbuild. Create symlinks from -# $(uname -m) to the ARCH directory. -[ -e %buildroot/$obj_dir/%_target_cpu ] \ + fi + # Some architecture's $(uname -m) output is different from the ARCH + # parameter that needs to be passed to kbuild. Create symlinks from + # $(uname -m) to the ARCH directory. + [ -e %buildroot/$obj_dir/%_target_cpu ] \ || ln -sf $SUBARCH %buildroot/$obj_dir/%_target_cpu %ifarch ppc ppc64 -[ -e %buildroot/$obj_dir/ppc ] \ + [ -e %buildroot/$obj_dir/ppc ] \ || ln -s $SUBARCH %buildroot/$obj_dir/ppc -[ -e %buildroot/$obj_dir/ppc64 ] \ + [ -e %buildroot/$obj_dir/ppc64 ] \ || ln -s $SUBARCH %buildroot/$obj_dir/ppc64 %endif -# Check for kABI changes -KABI=0 -if [ -e %my_builddir/kabi/$SUBARCH/symvers-kdump ]; then + # Check for kABI changes + KABI=0 + if [ -e %my_builddir/kabi/$SUBARCH/symvers-kdump ]; then %_sourcedir/kabi-checks \ %my_builddir/kabi/$SUBARCH/symvers-kdump \ Module.symvers \ %my_builddir/kabi/commonsyms \ %my_builddir/kabi/usedsyms \ || KABI=$? -fi -if [ $KABI -gt %tolerate_kabi_changes ]; then + fi + if [ $KABI -gt %tolerate_kabi_changes ]; then echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ "of %tolerate_kabi_changes. Please try to avoid the kABI changes." if [ ! -e %my_builddir/kabi/$SUBARCH/ignore-kdump -a \ @@ -508,68 +525,204 @@ fi # Indicate the ABI badness in build result emails. echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag -fi -if [ $KABI -ge 8 ]; then + fi + if [ $KABI -ge 8 ]; then echo "To find out which types have changed relative to the reference" \ "symbols, diff the symtypes.gz files of the reference kernel" \ "against the symtypes.gz file from this build." -fi -# We were building in %my_builddir/linux-2.6.26, but the sources will -# later be installed in /usr/src/linux-2.6.26-%source_rel. Fix up the -# build symlink. -# need to fake modules directory to satisfy scripts -%if %build_nomodules -mkdir -p %buildroot/lib/modules/$KERNELRELEASE/ -%endif -rm -f %buildroot/lib/modules/$KERNELRELEASE/{source,build} -ln -s /usr/src/linux-${KERNELRELEASE%%-kdump} \ + fi + # We were building in %my_builddir/linux-2.6.26, but the sources will + # later be installed in /usr/src/linux-2.6.26-%source_rel. Fix up the + # build symlink. + rm -f %buildroot/lib/modules/$KERNELRELEASE/{source,build} + ln -s /usr/src/linux-${KERNELRELEASE%%-kdump} \ %buildroot/lib/modules/$KERNELRELEASE/source -ln -s /$obj_dir/$SUBARCH/kdump \ + ln -s /$obj_dir/$SUBARCH/kdump \ %buildroot/lib/modules/$KERNELRELEASE/build -# Abort if there are any undefined symbols -msg="$(/sbin/depmod -F %buildroot/boot/System.map-$KERNELRELEASE \ + # Abort if there are any undefined symbols + msg="$(/sbin/depmod -F %buildroot/boot/System.map-$KERNELRELEASE \ -b %buildroot -ae $KERNELRELEASE 2>&1)" -if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then + if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then exit 1 -fi -# Create a dummy initrd with roughly the size the real one will have. -# That way, YaST will know that this package requires some additional -# space in /boot. -dd if=/dev/zero of=%buildroot/boot/initrd-$KERNELRELEASE \ + fi + # Create a dummy initrd with roughly the size the real one will have. + # That way, YaST will know that this package requires some additional + # space in /boot. + dd if=/dev/zero of=%buildroot/boot/initrd-$KERNELRELEASE \ bs=1024 seek=2047 count=1 -# Collect the file list. +%if %split_packages + # Generate the lists of supported and unsupported modules. + ( cd %buildroot + for module in $(find lib/modules/$KERNELRELEASE -type f -name '*.ko'); do + case "$(/sbin/modinfo -F supported $module)" in + (yes|external) + echo "/$module" >> %my_builddir/supported-modules + ;; + (*) + echo "/$module" >> %my_builddir/unsupported-modules + ;; + esac + done + ) + add_dependent_modules() { + local modules_dep=$1 + xargs make -rRs -f <(echo -e '%:\n\t@echo $@' ; cat $modules_dep) + } + modules_dep=%buildroot/lib/modules/$KERNELRELEASE/modules.dep + # Make sure that no supported modules depend on any unsupported modules. + dependent_unsupported_modules=$( + comm -3 <(sort %my_builddir/supported-modules) \ + <(cat %my_builddir/supported-modules \ + | add_dependent_modules $modules_dep \ + | sort)) + if [ -n "$dependent_unsupported_modules" ]; then + echo "The following unsupported modules are used by supported modules:" + echo "$dependent_unsupported_modules" + echo "Please fix supported.conf." + exit 1 + fi + # Compute the list of base modules: modules that core modules depend on + # implicitly are also core modules. + grep -f %my_builddir/grep-for-base-modules %my_builddir/supported-modules \ + | add_dependent_modules $modules_dep > %my_builddir/base-modules + # All supported modules which are not core modules belong in kernel-kernel-kdump. + comm -3 <(sort %my_builddir/supported-modules) \ + <(sort %my_builddir/base-modules) \ + > %my_builddir/main-modules +%else + ( cd %buildroot + find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' + ) > %my_builddir/base-modules +%endif + # Set up some module aliases + install -d -m 755 %buildroot/etc/modprobe.d/ + install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ +fi +add_dirs_to_filelist() { + local filelist + filelist=$(cat) + echo "$filelist" + # Below, we do this: + # - remove filelist macros + # - remove last pathname component + # - generate all parents and make the list unique + # - skip directories owned be other packages + # - add the %dir prefix (double-escaped for find and rpm) + echo "$filelist" \ + | sed -re 's:%%%%[a-z]+(\([^)]+\))? ?::g' \ + | sed -re 's:/[^/]+$::' \ + | sed -nre ':a; p; s:/[^/]+$::; ta' \ + | sort -u \ + | sed -r -e '\:^(|/boot|/etc|/lib(/modules|/firmware)?|/usr(/src)?)$:d' \ + | sed -e 's:^:%%%%dir :' +} +# Collect the file lists. ( cd %buildroot - echo "%%defattr(-, root, root)" + echo "%%%%defattr(-, root, root)" find boot \ - \( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \ + \( -type l -o -name 'initrd-*' \) -printf '%%%%%%%%ghost /%%p\n' -o \ -type f -printf '/%%p\n' + if [ $CONFIG_MODULES = y ]; then find lib/modules/$KERNELRELEASE \ - -type d -printf '%%%%dir /%%p\n' -o \ - -path '*/modules.*' -printf '%%%%ghost /%%p\n' -o \ - -printf '/%%p\n' - test -d lib/firmware && \ - find lib/firmware/$KERNELRELEASE \ - -type d -printf '%%%%dir /%%p\n' -o \ - -path '*/modules.*' -printf '%%%%ghost /%%p\n' -o \ + -type d -o \ + -path '*/modules.*' -printf '%%%%%%%%ghost /%%p\n' -o \ + -name '*.ko' -prune -o \ -printf '/%%p\n' + cat %my_builddir/base-modules + echo '%%%%config /etc/modprobe.d/module-renames' find $obj_dir \ - -type d -printf '%%%%dir /%%p\n' -o \ + -type d -o \ + -printf '/%%p\n' + fi + test -d lib/firmware/$KERNELRELEASE && \ + find lib/firmware/$KERNELRELEASE \ + -type d -o \ -printf '/%%p\n' - echo '%%dir /etc/modprobe.d/' - echo '%%config /etc/modprobe.d/module-renames' if [ -e .%_docdir/%name ]; then - echo "%%doc %_docdir/%name" + echo "%%%%doc %_docdir/%name" fi -) > %my_builddir/kernel.files -# Set up some module aliases -install -d -m 755 %buildroot/etc/modprobe.d/ -install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ - -%pre -f pre.sh +) | add_dirs_to_filelist > %my_builddir/kernel-base.files +%if %split_packages + ( echo "%%%%defattr(-, root, root)" + cat %my_builddir/main-modules + ) | add_dirs_to_filelist > %my_builddir/kernel-main.files + ( echo "%%%%defattr(-, root, root)" + cat %my_builddir/unsupported-modules + ) | add_dirs_to_filelist > %my_builddir/kernel-extra.files +%endif +# Hardlink duplicate files automatically (from package fdupes): It doesn't safe +# much, but it keeps rpmlint from breaking the package build. +%fdupes $RPM_BUILD_ROOT +cd %my_builddir # it helps if rpm can find the file lists ... %post -f post.sh %postun -f postun.sh +%if %split_packages + +%files -f kernel-main.files +%else + +%files -f kernel-base.files +%endif + +%package -n kernel-kdump-base +Summary: kernel for kdump - base modules +License: GPL v2 only +Group: System/Kernel +Url: http://www.kernel.org/ +AutoReqProv: on +Requires(pre): coreutils awk +Requires(post): module-init-tools +Requires(post): perl-Bootloader +Requires(post): mkinitrd + +%description -n kernel-kdump-base +This kernel is intended for kdump. It can not be booted with a normal +bootloader, the kexec tool has to be used to load it. Once the system +crashes, the loaded kernel will be started to grab debug info from the +crashed kernel. + +This package contains only the base modules, required in all installs. + + + +Source Timestamp: 2008-09-29 15:31:19 +0200 + +%pre -n kernel-kdump-base -f pre-base.sh + +%post -n kernel-kdump-base -f post-base.sh +%if %split_packages + +%files -n kernel-kdump-base -f kernel-base.files +%endif + +%package -n kernel-kdump-extra +Summary: kernel for kdump - extra modules +License: GPL v2 only +Group: System/Kernel +Url: http://www.kernel.org/ +AutoReqProv: on +Requires: kernel-kdump = %version-%release +Requires(pre): coreutils awk +Requires(post): module-init-tools +Requires(post): perl-Bootloader +Requires(post): mkinitrd -%files -f kernel.files +%description -n kernel-kdump-extra +This kernel is intended for kdump. It can not be booted with a normal +bootloader, the kexec tool has to be used to load it. Once the system +crashes, the loaded kernel will be started to grab debug info from the +crashed kernel. + +This package contains additional modules not supported by Novell. + + +Source Timestamp: 2008-09-29 15:31:19 +0200 + +%post -n kernel-kdump-extra -f post-extra.sh +%if %split_packages + +%files -n kernel-kdump-extra -f kernel-extra.files +%endif ++++++ kernel-pae.spec ++++++ --- /var/tmp/diff_new_pack.o25057/_old 2008-09-29 18:09:41.000000000 +0200 +++ /var/tmp/diff_new_pack.o25057/_new 2008-09-29 18:09:41.000000000 +0200 @@ -30,7 +30,6 @@ %define build_xen 0 %define build_um 0 %define build_vanilla 0 -%define build_nomodules 0 %if %{build_flavor} == "kdump" %define build_kdump 1 %endif @@ -43,19 +42,18 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%if %{build_flavor} == "ps3" -%define build_nomodules 1 -%endif Name: kernel-pae Summary: Kernel with PAE Support Version: 2.6.27 -Release: 7 +Release: 8 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ AutoReqProv: on -BuildRequires: coreutils module-init-tools +BuildRequires: coreutils module-init-tools sparse +BuildRequires: fdupes +Requires: kernel-pae-base = %version-%release Requires(pre): coreutils awk Requires(post): module-init-tools # This Requires is wrong, because the post/postun scripts have a @@ -68,6 +66,9 @@ Requires(post): perl-Bootloader Requires(post): mkinitrd Recommends: kerneloops +%if ! %sles_version +Recommends: kernel-pae-extra +%endif #!BuildIgnore: perl-Bootloader mkinitrd %if ! 0%{?opensuse_bs} BuildRequires: kernel-dummy @@ -131,7 +132,6 @@ Source32: config-subst Source33: check-for-config-changes Source34: check-supported-list -Source35: install-configs Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where @@ -151,6 +151,7 @@ Source109: patches.kernel.org.tar.bz2 Source110: patches.apparmor.tar.bz2 Source111: patches.rt.tar.bz2 +Source112: patches.trace.tar.bz2 Source120: kabi.tar.bz2 %define my_builddir %_builddir/%{name}-%{version} BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -177,8 +178,21 @@ Obsoletes: rt2x00-kmp Obsoletes: rfswitch-kmp Obsoletes: uvcvideo-kmp -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks,install-configs}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks}) %define symbols %(set -- kernel-pae pae $(case pae in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) +%define subarch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/pae$') +# Define some CONFIG variables as rpm macros as well. (rpm cannot handle +# defining them all at once.) +%define config_vars CONFIG_MODULES +%{expand:%(eval "$(test -n "%subarch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%subarch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)} +%if %build_vanilla || %CONFIG_MODULES != "y" +%define split_packages 0 +%else +%define split_packages 1 +%endif +# Build with bash instead of sh as the shell: this turns on bash +# extensions like <(...). +%define _buildshell /bin/bash # Provide the exported symbols as "ksym(symbol) = hash" %define __find_provides %_sourcedir/find-provides %name # Will modules not listed in supported.conf abort the kernel build (0/1)? @@ -200,7 +214,7 @@ -Source Timestamp: 2008-09-15 10:58:05 +0200 +Source Timestamp: 2008-09-29 15:31:19 +0200 %prep if ! [ -e %_sourcedir/linux-2.6.26.tar.bz2 ]; then @@ -210,16 +224,21 @@ fi echo "Architecture symbol(s):" %symbols # Unpack all sources and patches -%setup -q -c -T -a 0 -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109 -a 110 -a 111 -a 120 -# Generate the list of supported modules -( %_sourcedir/guards %symbols < %_sourcedir/supported.conf +%setup -q -c -T -a 0 -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109 -a 110 -a 111 -a 112 -a 120 +supported_conf() { + %_sourcedir/guards %symbols $* < %_sourcedir/supported.conf | sort -u +} +# Generate the list of modules to be marked as supported +( supported_conf base for how in external; do - ( %_sourcedir/guards %symbols < %_sourcedir/supported.conf - %_sourcedir/guards %symbols < %_sourcedir/supported.conf - %_sourcedir/guards %symbols $how < %_sourcedir/supported.conf \ - ) | sort | uniq -u | sed -e 's:$: '"$how"':' + comm -2 -3 <(supported_conf base $how) <(supported_conf base) \ + | sed -e 's:$: '"$how"':' done -) | sed -e 's,.*/,,' | sort > linux-2.6.26/Module.supported +) | sed -e 's,.*/,,' -e 's,\.ko$,,' > linux-2.6.26/Module.supported +# Create grep pattern file for the modules to end up in the base package +comm -2 -3 <(supported_conf base) <(supported_conf) \ + | sed -e 's:.*/::' -e 's:^:\\/:' -e 's:$:\.ko$:' \ + > %my_builddir/grep-for-base-modules cd linux-2.6.26 # Find out for which architecture to build. We do this here, and use the # result in the %build and %install sections. @@ -227,10 +246,7 @@ # On architectures with a bi-arch or cross compiler, we can compile for # an architecture different from %arch. The location of the config file # tells us for which architecture to compile. -set -- $( - for config in $(%_sourcedir/guards %symbols < %_sourcedir/config.conf) ; do - [ ${config#*/} = pae ] && echo $config - done) +set -- %subarch_flavor if [ $# -ne 1 ]; then echo "$# config files found for this spec file (but one needed)" >&2 exit 1 @@ -260,9 +276,9 @@ if [ -f %_sourcedir/localversion ] ; then cat %_sourcedir/localversion > localversion fi -%_sourcedir/install-configs %_sourcedir .. $RELEASE -config=arch/$subarch/defconfig.pae -cat $config \ +cat ../config/%subarch_flavor \ +| %_sourcedir/config-subst CONFIG_LOCALVERSION '"'-$RELEASE-pae'"' \ +| %_sourcedir/config-subst CONFIG_SUSE_KERNEL y \ %if 0%{?__debug_package:1} | %_sourcedir/config-subst CONFIG_DEBUG_INFO y \ %endif @@ -282,13 +298,14 @@ EOF %endif cat >> ../.rpm-defs <<EOF -KERNELRELEASE=2.6.27-rc6-$RELEASE-pae +KERNELRELEASE=2.6.27-rc7-$RELEASE-pae EOF %if 0%{?__debug_package:1} cat >> ../.rpm-defs <<EOF MAKE_ARGS="\$MAKE_ARGS CONFIG_DEBUG_INFO=y" EOF %endif +echo CONFIG_MODULES=%CONFIG_MODULES >> ../.rpm-defs %build source .rpm-defs @@ -323,7 +340,7 @@ export KBUILD_SYMTYPES=1 EOF source .kernel-binary.spec.buildenv -make %{?jobs:-j%jobs} all $MAKE_ARGS +make %{?jobs:-j%jobs} all $MAKE_ARGS CONFIG_DEBUG_SECTION_MISMATCH=y %install source .rpm-defs @@ -418,13 +435,16 @@ sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:pae:g" \ - %_sourcedir/pre.sh > ../pre.sh -( cat %_sourcedir/functions.sh + %_sourcedir/pre.sh > ../pre-base.sh +for sub in '-base' '' '-extra'; do + ( cat %_sourcedir/functions.sh sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:pae:g" \ + -e "s:@SUBPACKAGE@:kernel-pae$sub:g" \ %_sourcedir/post.sh -) > ../post.sh + ) > ../post$sub.sh +done ( cat %_sourcedir/functions.sh sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ @@ -437,18 +457,16 @@ ln -s $image$suffix %buildroot/boot/$image$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix cp .config %buildroot/boot/config-$KERNELRELEASE -%if ! %build_nomodules +gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz +if [ $CONFIG_MODULES = y ]; then make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot -%endif -if ! %_sourcedir/check-supported-list \ + if ! %_sourcedir/check-supported-list \ %_sourcedir %buildroot/lib/modules/$KERNELRELEASE; then %if %supported_modules_check exit 1 %endif echo "Consistency check error: please update supported.conf." -fi -gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz -if grep -q '^CONFIG_MODULES=y$' .config; then + fi # Preserve exports from previous kernels when possible. old_symsets=%my_builddir/kabi/$SUBARCH/symsets-pae.tar.gz [ -e $old_symsets ] || old_symsets= @@ -462,42 +480,41 @@ %buildroot/boot/symsets-$KERNELRELEASE.tar.gz \ $old_symsets || [ -n "$ignore_kabi_changes" -o %tolerate_kabi_changes -ge 8 ] -fi -# Also put the resulting file in $obj_dir/$SUBARCH/pae -# so that kernel-source + kernel-pae is sufficient for building -# modules that have modversions as well. -obj_dir=usr/src/linux-${KERNELRELEASE%%-pae}-obj -mkdir -p %buildroot/$obj_dir/$SUBARCH/pae -cp Module.symvers %buildroot/$obj_dir/$SUBARCH/pae -# Table of types used in exported symbols (for modversion debugging). -%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-$KERNELRELEASE -if [ -s %buildroot/boot/symtypes-$KERNELRELEASE ]; then + # Also put the resulting file in $obj_dir/$SUBARCH/pae + # so that kernel-source + kernel-pae is sufficient for building + # modules that have modversions as well. + obj_dir=usr/src/linux-${KERNELRELEASE%%-pae}-obj + mkdir -p %buildroot/$obj_dir/$SUBARCH/pae + cp Module.symvers %buildroot/$obj_dir/$SUBARCH/pae + # Table of types used in exported symbols (for modversion debugging). + %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-$KERNELRELEASE + if [ -s %buildroot/boot/symtypes-$KERNELRELEASE ]; then gzip -9 %buildroot/boot/symtypes-$KERNELRELEASE -else + else rm -f %buildroot/boot/symtypes-$KERNELRELEASE -fi -# Some architecture's $(uname -m) output is different from the ARCH -# parameter that needs to be passed to kbuild. Create symlinks from -# $(uname -m) to the ARCH directory. -[ -e %buildroot/$obj_dir/%_target_cpu ] \ + fi + # Some architecture's $(uname -m) output is different from the ARCH + # parameter that needs to be passed to kbuild. Create symlinks from + # $(uname -m) to the ARCH directory. + [ -e %buildroot/$obj_dir/%_target_cpu ] \ || ln -sf $SUBARCH %buildroot/$obj_dir/%_target_cpu %ifarch ppc ppc64 -[ -e %buildroot/$obj_dir/ppc ] \ + [ -e %buildroot/$obj_dir/ppc ] \ || ln -s $SUBARCH %buildroot/$obj_dir/ppc -[ -e %buildroot/$obj_dir/ppc64 ] \ + [ -e %buildroot/$obj_dir/ppc64 ] \ || ln -s $SUBARCH %buildroot/$obj_dir/ppc64 %endif -# Check for kABI changes -KABI=0 -if [ -e %my_builddir/kabi/$SUBARCH/symvers-pae ]; then + # Check for kABI changes + KABI=0 + if [ -e %my_builddir/kabi/$SUBARCH/symvers-pae ]; then %_sourcedir/kabi-checks \ %my_builddir/kabi/$SUBARCH/symvers-pae \ Module.symvers \ %my_builddir/kabi/commonsyms \ %my_builddir/kabi/usedsyms \ || KABI=$? -fi -if [ $KABI -gt %tolerate_kabi_changes ]; then + fi + if [ $KABI -gt %tolerate_kabi_changes ]; then echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ "of %tolerate_kabi_changes. Please try to avoid the kABI changes." if [ ! -e %my_builddir/kabi/$SUBARCH/ignore-pae -a \ @@ -509,68 +526,212 @@ fi # Indicate the ABI badness in build result emails. echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag -fi -if [ $KABI -ge 8 ]; then + fi + if [ $KABI -ge 8 ]; then echo "To find out which types have changed relative to the reference" \ "symbols, diff the symtypes.gz files of the reference kernel" \ "against the symtypes.gz file from this build." -fi -# We were building in %my_builddir/linux-2.6.26, but the sources will -# later be installed in /usr/src/linux-2.6.26-%source_rel. Fix up the -# build symlink. -# need to fake modules directory to satisfy scripts -%if %build_nomodules -mkdir -p %buildroot/lib/modules/$KERNELRELEASE/ -%endif -rm -f %buildroot/lib/modules/$KERNELRELEASE/{source,build} -ln -s /usr/src/linux-${KERNELRELEASE%%-pae} \ + fi + # We were building in %my_builddir/linux-2.6.26, but the sources will + # later be installed in /usr/src/linux-2.6.26-%source_rel. Fix up the + # build symlink. + rm -f %buildroot/lib/modules/$KERNELRELEASE/{source,build} + ln -s /usr/src/linux-${KERNELRELEASE%%-pae} \ %buildroot/lib/modules/$KERNELRELEASE/source -ln -s /$obj_dir/$SUBARCH/pae \ + ln -s /$obj_dir/$SUBARCH/pae \ %buildroot/lib/modules/$KERNELRELEASE/build -# Abort if there are any undefined symbols -msg="$(/sbin/depmod -F %buildroot/boot/System.map-$KERNELRELEASE \ + # Abort if there are any undefined symbols + msg="$(/sbin/depmod -F %buildroot/boot/System.map-$KERNELRELEASE \ -b %buildroot -ae $KERNELRELEASE 2>&1)" -if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then + if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then exit 1 -fi -# Create a dummy initrd with roughly the size the real one will have. -# That way, YaST will know that this package requires some additional -# space in /boot. -dd if=/dev/zero of=%buildroot/boot/initrd-$KERNELRELEASE \ + fi + # Create a dummy initrd with roughly the size the real one will have. + # That way, YaST will know that this package requires some additional + # space in /boot. + dd if=/dev/zero of=%buildroot/boot/initrd-$KERNELRELEASE \ bs=1024 seek=2047 count=1 -# Collect the file list. +%if %split_packages + # Generate the lists of supported and unsupported modules. + ( cd %buildroot + for module in $(find lib/modules/$KERNELRELEASE -type f -name '*.ko'); do + case "$(/sbin/modinfo -F supported $module)" in + (yes|external) + echo "/$module" >> %my_builddir/supported-modules + ;; + (*) + echo "/$module" >> %my_builddir/unsupported-modules + ;; + esac + done + ) + add_dependent_modules() { + local modules_dep=$1 + xargs make -rRs -f <(echo -e '%:\n\t@echo $@' ; cat $modules_dep) + } + modules_dep=%buildroot/lib/modules/$KERNELRELEASE/modules.dep + # Make sure that no supported modules depend on any unsupported modules. + dependent_unsupported_modules=$( + comm -3 <(sort %my_builddir/supported-modules) \ + <(cat %my_builddir/supported-modules \ + | add_dependent_modules $modules_dep \ + | sort)) + if [ -n "$dependent_unsupported_modules" ]; then + echo "The following unsupported modules are used by supported modules:" + echo "$dependent_unsupported_modules" + echo "Please fix supported.conf." + exit 1 + fi + # Compute the list of base modules: modules that core modules depend on + # implicitly are also core modules. + grep -f %my_builddir/grep-for-base-modules %my_builddir/supported-modules \ + | add_dependent_modules $modules_dep > %my_builddir/base-modules + # All supported modules which are not core modules belong in kernel-kernel-pae. + comm -3 <(sort %my_builddir/supported-modules) \ + <(sort %my_builddir/base-modules) \ + > %my_builddir/main-modules +%else + ( cd %buildroot + find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' + ) > %my_builddir/base-modules +%endif + # Set up some module aliases + install -d -m 755 %buildroot/etc/modprobe.d/ + install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ +fi +add_dirs_to_filelist() { + local filelist + filelist=$(cat) + echo "$filelist" + # Below, we do this: + # - remove filelist macros + # - remove last pathname component + # - generate all parents and make the list unique + # - skip directories owned be other packages + # - add the %dir prefix (double-escaped for find and rpm) + echo "$filelist" \ + | sed -re 's:%%%%[a-z]+(\([^)]+\))? ?::g' \ + | sed -re 's:/[^/]+$::' \ + | sed -nre ':a; p; s:/[^/]+$::; ta' \ + | sort -u \ + | sed -r -e '\:^(|/boot|/etc|/lib(/modules|/firmware)?|/usr(/src)?)$:d' \ + | sed -e 's:^:%%%%dir :' +} +# Collect the file lists. ( cd %buildroot - echo "%%defattr(-, root, root)" + echo "%%%%defattr(-, root, root)" find boot \ - \( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \ + \( -type l -o -name 'initrd-*' \) -printf '%%%%%%%%ghost /%%p\n' -o \ -type f -printf '/%%p\n' + if [ $CONFIG_MODULES = y ]; then find lib/modules/$KERNELRELEASE \ - -type d -printf '%%%%dir /%%p\n' -o \ - -path '*/modules.*' -printf '%%%%ghost /%%p\n' -o \ - -printf '/%%p\n' - test -d lib/firmware && \ - find lib/firmware/$KERNELRELEASE \ - -type d -printf '%%%%dir /%%p\n' -o \ - -path '*/modules.*' -printf '%%%%ghost /%%p\n' -o \ + -type d -o \ + -path '*/modules.*' -printf '%%%%%%%%ghost /%%p\n' -o \ + -name '*.ko' -prune -o \ -printf '/%%p\n' + cat %my_builddir/base-modules + echo '%%%%config /etc/modprobe.d/module-renames' find $obj_dir \ - -type d -printf '%%%%dir /%%p\n' -o \ + -type d -o \ + -printf '/%%p\n' + fi + test -d lib/firmware/$KERNELRELEASE && \ + find lib/firmware/$KERNELRELEASE \ + -type d -o \ -printf '/%%p\n' - echo '%%dir /etc/modprobe.d/' - echo '%%config /etc/modprobe.d/module-renames' if [ -e .%_docdir/%name ]; then - echo "%%doc %_docdir/%name" + echo "%%%%doc %_docdir/%name" fi -) > %my_builddir/kernel.files -# Set up some module aliases -install -d -m 755 %buildroot/etc/modprobe.d/ -install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ - -%pre -f pre.sh +) | add_dirs_to_filelist > %my_builddir/kernel-base.files +%if %split_packages + ( echo "%%%%defattr(-, root, root)" + cat %my_builddir/main-modules + ) | add_dirs_to_filelist > %my_builddir/kernel-main.files + ( echo "%%%%defattr(-, root, root)" + cat %my_builddir/unsupported-modules + ) | add_dirs_to_filelist > %my_builddir/kernel-extra.files +%endif +# Hardlink duplicate files automatically (from package fdupes): It doesn't safe +# much, but it keeps rpmlint from breaking the package build. +%fdupes $RPM_BUILD_ROOT +cd %my_builddir # it helps if rpm can find the file lists ... %post -f post.sh %postun -f postun.sh +%if %split_packages + +%files -f kernel-main.files +%else + +%files -f kernel-base.files +%endif + +%package -n kernel-pae-base +Summary: Kernel with PAE Support - base modules +License: GPL v2 only +Group: System/Kernel +Url: http://www.kernel.org/ +AutoReqProv: on +Requires(pre): coreutils awk +Requires(post): module-init-tools +Requires(post): perl-Bootloader +Requires(post): mkinitrd + +%description -n kernel-pae-base +This kernel supports up to 64GB of main memory. It requires Physical +Addressing Extensions (PAE), which were introduced with the Pentium Pro +processor. + +PAE is not only more physical address space but also important for the +"no execute" feature which disables execution of code that is marked as +non-executable. Therefore, the PAE kernel should be used on any systems +that support it, regardless of the amount of main memory. + +This package contains only the base modules, required in all installs. + + + +Source Timestamp: 2008-09-29 15:31:19 +0200 + +%pre -n kernel-pae-base -f pre-base.sh + +%post -n kernel-pae-base -f post-base.sh +%if %split_packages + +%files -n kernel-pae-base -f kernel-base.files +%endif + +%package -n kernel-pae-extra +Summary: Kernel with PAE Support - extra modules +License: GPL v2 only +Group: System/Kernel +Url: http://www.kernel.org/ +AutoReqProv: on +Requires: kernel-pae = %version-%release +Requires(pre): coreutils awk +Requires(post): module-init-tools +Requires(post): perl-Bootloader +Requires(post): mkinitrd + +%description -n kernel-pae-extra +This kernel supports up to 64GB of main memory. It requires Physical +Addressing Extensions (PAE), which were introduced with the Pentium Pro +processor. + +PAE is not only more physical address space but also important for the +"no execute" feature which disables execution of code that is marked as +non-executable. Therefore, the PAE kernel should be used on any systems +that support it, regardless of the amount of main memory. -%files -f kernel.files +This package contains additional modules not supported by Novell. + + +Source Timestamp: 2008-09-29 15:31:19 +0200 + +%post -n kernel-pae-extra -f post-extra.sh +%if %split_packages + +%files -n kernel-pae-extra -f kernel-extra.files +%endif ++++++ kernel-ppc64.spec ++++++ --- /var/tmp/diff_new_pack.o25057/_old 2008-09-29 18:09:42.000000000 +0200 +++ /var/tmp/diff_new_pack.o25057/_new 2008-09-29 18:09:42.000000000 +0200 @@ -30,7 +30,6 @@ %define build_xen 0 %define build_um 0 %define build_vanilla 0 -%define build_nomodules 0 %if %{build_flavor} == "kdump" %define build_kdump 1 %endif @@ -43,19 +42,18 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%if %{build_flavor} == "ps3" -%define build_nomodules 1 -%endif Name: kernel-ppc64 Summary: Kernel for ppc64 Systems Version: 2.6.27 -Release: 7 +Release: 8 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ AutoReqProv: on -BuildRequires: coreutils module-init-tools +BuildRequires: coreutils module-init-tools sparse +BuildRequires: fdupes +Requires: kernel-ppc64-base = %version-%release Requires(pre): coreutils awk Requires(post): module-init-tools # This Requires is wrong, because the post/postun scripts have a @@ -68,6 +66,9 @@ Requires(post): perl-Bootloader Requires(post): mkinitrd Recommends: kerneloops +%if ! %sles_version +Recommends: kernel-ppc64-extra +%endif #!BuildIgnore: perl-Bootloader mkinitrd %if ! 0%{?opensuse_bs} BuildRequires: kernel-dummy @@ -136,7 +137,6 @@ Source32: config-subst Source33: check-for-config-changes Source34: check-supported-list -Source35: install-configs Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where @@ -156,6 +156,7 @@ Source109: patches.kernel.org.tar.bz2 Source110: patches.apparmor.tar.bz2 Source111: patches.rt.tar.bz2 +Source112: patches.trace.tar.bz2 Source120: kabi.tar.bz2 %define my_builddir %_builddir/%{name}-%{version} BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -182,8 +183,21 @@ Obsoletes: rt2x00-kmp Obsoletes: rfswitch-kmp Obsoletes: uvcvideo-kmp -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks,install-configs}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks}) %define symbols %(set -- kernel-ppc64 ppc64 $(case ppc64 in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) +%define subarch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/ppc64$') +# Define some CONFIG variables as rpm macros as well. (rpm cannot handle +# defining them all at once.) +%define config_vars CONFIG_MODULES +%{expand:%(eval "$(test -n "%subarch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%subarch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)} +%if %build_vanilla || %CONFIG_MODULES != "y" +%define split_packages 0 +%else +%define split_packages 1 +%endif +# Build with bash instead of sh as the shell: this turns on bash +# extensions like <(...). +%define _buildshell /bin/bash # Provide the exported symbols as "ksym(symbol) = hash" %define __find_provides %_sourcedir/find-provides %name # Will modules not listed in supported.conf abort the kernel build (0/1)? @@ -212,7 +226,7 @@ Tom Gall <tom_gall@vnet.ibm.com> see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-09-15 10:58:05 +0200 +Source Timestamp: 2008-09-29 15:31:19 +0200 %prep if ! [ -e %_sourcedir/linux-2.6.26.tar.bz2 ]; then @@ -222,16 +236,21 @@ fi echo "Architecture symbol(s):" %symbols # Unpack all sources and patches -%setup -q -c -T -a 0 -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109 -a 110 -a 111 -a 120 -# Generate the list of supported modules -( %_sourcedir/guards %symbols < %_sourcedir/supported.conf +%setup -q -c -T -a 0 -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109 -a 110 -a 111 -a 112 -a 120 +supported_conf() { + %_sourcedir/guards %symbols $* < %_sourcedir/supported.conf | sort -u +} +# Generate the list of modules to be marked as supported +( supported_conf base for how in external; do - ( %_sourcedir/guards %symbols < %_sourcedir/supported.conf - %_sourcedir/guards %symbols < %_sourcedir/supported.conf - %_sourcedir/guards %symbols $how < %_sourcedir/supported.conf \ - ) | sort | uniq -u | sed -e 's:$: '"$how"':' + comm -2 -3 <(supported_conf base $how) <(supported_conf base) \ + | sed -e 's:$: '"$how"':' done -) | sed -e 's,.*/,,' | sort > linux-2.6.26/Module.supported +) | sed -e 's,.*/,,' -e 's,\.ko$,,' > linux-2.6.26/Module.supported +# Create grep pattern file for the modules to end up in the base package +comm -2 -3 <(supported_conf base) <(supported_conf) \ + | sed -e 's:.*/::' -e 's:^:\\/:' -e 's:$:\.ko$:' \ + > %my_builddir/grep-for-base-modules cd linux-2.6.26 # Find out for which architecture to build. We do this here, and use the # result in the %build and %install sections. @@ -239,10 +258,7 @@ # On architectures with a bi-arch or cross compiler, we can compile for # an architecture different from %arch. The location of the config file # tells us for which architecture to compile. -set -- $( - for config in $(%_sourcedir/guards %symbols < %_sourcedir/config.conf) ; do - [ ${config#*/} = ppc64 ] && echo $config - done) +set -- %subarch_flavor if [ $# -ne 1 ]; then echo "$# config files found for this spec file (but one needed)" >&2 exit 1 @@ -272,9 +288,9 @@ if [ -f %_sourcedir/localversion ] ; then cat %_sourcedir/localversion > localversion fi -%_sourcedir/install-configs %_sourcedir .. $RELEASE -config=arch/$subarch/defconfig.ppc64 -cat $config \ +cat ../config/%subarch_flavor \ +| %_sourcedir/config-subst CONFIG_LOCALVERSION '"'-$RELEASE-ppc64'"' \ +| %_sourcedir/config-subst CONFIG_SUSE_KERNEL y \ %if 0%{?__debug_package:1} | %_sourcedir/config-subst CONFIG_DEBUG_INFO y \ %endif @@ -294,13 +310,14 @@ EOF %endif cat >> ../.rpm-defs <<EOF -KERNELRELEASE=2.6.27-rc6-$RELEASE-ppc64 +KERNELRELEASE=2.6.27-rc7-$RELEASE-ppc64 EOF %if 0%{?__debug_package:1} cat >> ../.rpm-defs <<EOF MAKE_ARGS="\$MAKE_ARGS CONFIG_DEBUG_INFO=y" EOF %endif +echo CONFIG_MODULES=%CONFIG_MODULES >> ../.rpm-defs %build source .rpm-defs @@ -335,7 +352,7 @@ export KBUILD_SYMTYPES=1 EOF source .kernel-binary.spec.buildenv -make %{?jobs:-j%jobs} all $MAKE_ARGS +make %{?jobs:-j%jobs} all $MAKE_ARGS CONFIG_DEBUG_SECTION_MISMATCH=y %install source .rpm-defs @@ -430,13 +447,16 @@ sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:ppc64:g" \ - %_sourcedir/pre.sh > ../pre.sh -( cat %_sourcedir/functions.sh + %_sourcedir/pre.sh > ../pre-base.sh +for sub in '-base' '' '-extra'; do + ( cat %_sourcedir/functions.sh sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:ppc64:g" \ + -e "s:@SUBPACKAGE@:kernel-ppc64$sub:g" \ %_sourcedir/post.sh -) > ../post.sh + ) > ../post$sub.sh +done ( cat %_sourcedir/functions.sh sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ @@ -449,18 +469,16 @@ ln -s $image$suffix %buildroot/boot/$image$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix cp .config %buildroot/boot/config-$KERNELRELEASE -%if ! %build_nomodules +gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz +if [ $CONFIG_MODULES = y ]; then make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot -%endif -if ! %_sourcedir/check-supported-list \ + if ! %_sourcedir/check-supported-list \ %_sourcedir %buildroot/lib/modules/$KERNELRELEASE; then %if %supported_modules_check exit 1 %endif echo "Consistency check error: please update supported.conf." -fi -gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz -if grep -q '^CONFIG_MODULES=y$' .config; then + fi # Preserve exports from previous kernels when possible. old_symsets=%my_builddir/kabi/$SUBARCH/symsets-ppc64.tar.gz [ -e $old_symsets ] || old_symsets= @@ -474,42 +492,41 @@ %buildroot/boot/symsets-$KERNELRELEASE.tar.gz \ $old_symsets || [ -n "$ignore_kabi_changes" -o %tolerate_kabi_changes -ge 8 ] -fi -# Also put the resulting file in $obj_dir/$SUBARCH/ppc64 -# so that kernel-source + kernel-ppc64 is sufficient for building -# modules that have modversions as well. -obj_dir=usr/src/linux-${KERNELRELEASE%%-ppc64}-obj -mkdir -p %buildroot/$obj_dir/$SUBARCH/ppc64 -cp Module.symvers %buildroot/$obj_dir/$SUBARCH/ppc64 -# Table of types used in exported symbols (for modversion debugging). -%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-$KERNELRELEASE -if [ -s %buildroot/boot/symtypes-$KERNELRELEASE ]; then + # Also put the resulting file in $obj_dir/$SUBARCH/ppc64 + # so that kernel-source + kernel-ppc64 is sufficient for building + # modules that have modversions as well. + obj_dir=usr/src/linux-${KERNELRELEASE%%-ppc64}-obj + mkdir -p %buildroot/$obj_dir/$SUBARCH/ppc64 + cp Module.symvers %buildroot/$obj_dir/$SUBARCH/ppc64 + # Table of types used in exported symbols (for modversion debugging). + %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-$KERNELRELEASE + if [ -s %buildroot/boot/symtypes-$KERNELRELEASE ]; then gzip -9 %buildroot/boot/symtypes-$KERNELRELEASE -else + else rm -f %buildroot/boot/symtypes-$KERNELRELEASE -fi -# Some architecture's $(uname -m) output is different from the ARCH -# parameter that needs to be passed to kbuild. Create symlinks from -# $(uname -m) to the ARCH directory. -[ -e %buildroot/$obj_dir/%_target_cpu ] \ + fi + # Some architecture's $(uname -m) output is different from the ARCH + # parameter that needs to be passed to kbuild. Create symlinks from + # $(uname -m) to the ARCH directory. + [ -e %buildroot/$obj_dir/%_target_cpu ] \ || ln -sf $SUBARCH %buildroot/$obj_dir/%_target_cpu %ifarch ppc ppc64 -[ -e %buildroot/$obj_dir/ppc ] \ + [ -e %buildroot/$obj_dir/ppc ] \ || ln -s $SUBARCH %buildroot/$obj_dir/ppc -[ -e %buildroot/$obj_dir/ppc64 ] \ + [ -e %buildroot/$obj_dir/ppc64 ] \ || ln -s $SUBARCH %buildroot/$obj_dir/ppc64 %endif -# Check for kABI changes -KABI=0 -if [ -e %my_builddir/kabi/$SUBARCH/symvers-ppc64 ]; then + # Check for kABI changes + KABI=0 + if [ -e %my_builddir/kabi/$SUBARCH/symvers-ppc64 ]; then %_sourcedir/kabi-checks \ %my_builddir/kabi/$SUBARCH/symvers-ppc64 \ Module.symvers \ %my_builddir/kabi/commonsyms \ %my_builddir/kabi/usedsyms \ || KABI=$? -fi -if [ $KABI -gt %tolerate_kabi_changes ]; then + fi + if [ $KABI -gt %tolerate_kabi_changes ]; then echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ "of %tolerate_kabi_changes. Please try to avoid the kABI changes." if [ ! -e %my_builddir/kabi/$SUBARCH/ignore-ppc64 -a \ @@ -521,68 +538,226 @@ fi # Indicate the ABI badness in build result emails. echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag -fi -if [ $KABI -ge 8 ]; then + fi + if [ $KABI -ge 8 ]; then echo "To find out which types have changed relative to the reference" \ "symbols, diff the symtypes.gz files of the reference kernel" \ "against the symtypes.gz file from this build." -fi -# We were building in %my_builddir/linux-2.6.26, but the sources will -# later be installed in /usr/src/linux-2.6.26-%source_rel. Fix up the -# build symlink. -# need to fake modules directory to satisfy scripts -%if %build_nomodules -mkdir -p %buildroot/lib/modules/$KERNELRELEASE/ -%endif -rm -f %buildroot/lib/modules/$KERNELRELEASE/{source,build} -ln -s /usr/src/linux-${KERNELRELEASE%%-ppc64} \ + fi + # We were building in %my_builddir/linux-2.6.26, but the sources will + # later be installed in /usr/src/linux-2.6.26-%source_rel. Fix up the + # build symlink. + rm -f %buildroot/lib/modules/$KERNELRELEASE/{source,build} + ln -s /usr/src/linux-${KERNELRELEASE%%-ppc64} \ %buildroot/lib/modules/$KERNELRELEASE/source -ln -s /$obj_dir/$SUBARCH/ppc64 \ + ln -s /$obj_dir/$SUBARCH/ppc64 \ %buildroot/lib/modules/$KERNELRELEASE/build -# Abort if there are any undefined symbols -msg="$(/sbin/depmod -F %buildroot/boot/System.map-$KERNELRELEASE \ + # Abort if there are any undefined symbols + msg="$(/sbin/depmod -F %buildroot/boot/System.map-$KERNELRELEASE \ -b %buildroot -ae $KERNELRELEASE 2>&1)" -if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then + if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then exit 1 -fi -# Create a dummy initrd with roughly the size the real one will have. -# That way, YaST will know that this package requires some additional -# space in /boot. -dd if=/dev/zero of=%buildroot/boot/initrd-$KERNELRELEASE \ + fi + # Create a dummy initrd with roughly the size the real one will have. + # That way, YaST will know that this package requires some additional + # space in /boot. + dd if=/dev/zero of=%buildroot/boot/initrd-$KERNELRELEASE \ bs=1024 seek=2047 count=1 -# Collect the file list. +%if %split_packages + # Generate the lists of supported and unsupported modules. + ( cd %buildroot + for module in $(find lib/modules/$KERNELRELEASE -type f -name '*.ko'); do + case "$(/sbin/modinfo -F supported $module)" in + (yes|external) + echo "/$module" >> %my_builddir/supported-modules + ;; + (*) + echo "/$module" >> %my_builddir/unsupported-modules + ;; + esac + done + ) + add_dependent_modules() { + local modules_dep=$1 + xargs make -rRs -f <(echo -e '%:\n\t@echo $@' ; cat $modules_dep) + } + modules_dep=%buildroot/lib/modules/$KERNELRELEASE/modules.dep + # Make sure that no supported modules depend on any unsupported modules. + dependent_unsupported_modules=$( + comm -3 <(sort %my_builddir/supported-modules) \ + <(cat %my_builddir/supported-modules \ + | add_dependent_modules $modules_dep \ + | sort)) + if [ -n "$dependent_unsupported_modules" ]; then + echo "The following unsupported modules are used by supported modules:" + echo "$dependent_unsupported_modules" + echo "Please fix supported.conf." + exit 1 + fi + # Compute the list of base modules: modules that core modules depend on + # implicitly are also core modules. + grep -f %my_builddir/grep-for-base-modules %my_builddir/supported-modules \ + | add_dependent_modules $modules_dep > %my_builddir/base-modules + # All supported modules which are not core modules belong in kernel-kernel-ppc64. + comm -3 <(sort %my_builddir/supported-modules) \ + <(sort %my_builddir/base-modules) \ + > %my_builddir/main-modules +%else + ( cd %buildroot + find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' + ) > %my_builddir/base-modules +%endif + # Set up some module aliases + install -d -m 755 %buildroot/etc/modprobe.d/ + install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ +fi +add_dirs_to_filelist() { + local filelist + filelist=$(cat) + echo "$filelist" + # Below, we do this: + # - remove filelist macros + # - remove last pathname component + # - generate all parents and make the list unique + # - skip directories owned be other packages + # - add the %dir prefix (double-escaped for find and rpm) + echo "$filelist" \ + | sed -re 's:%%%%[a-z]+(\([^)]+\))? ?::g' \ + | sed -re 's:/[^/]+$::' \ + | sed -nre ':a; p; s:/[^/]+$::; ta' \ + | sort -u \ + | sed -r -e '\:^(|/boot|/etc|/lib(/modules|/firmware)?|/usr(/src)?)$:d' \ + | sed -e 's:^:%%%%dir :' +} +# Collect the file lists. ( cd %buildroot - echo "%%defattr(-, root, root)" + echo "%%%%defattr(-, root, root)" find boot \ - \( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \ + \( -type l -o -name 'initrd-*' \) -printf '%%%%%%%%ghost /%%p\n' -o \ -type f -printf '/%%p\n' + if [ $CONFIG_MODULES = y ]; then find lib/modules/$KERNELRELEASE \ - -type d -printf '%%%%dir /%%p\n' -o \ - -path '*/modules.*' -printf '%%%%ghost /%%p\n' -o \ - -printf '/%%p\n' - test -d lib/firmware && \ - find lib/firmware/$KERNELRELEASE \ - -type d -printf '%%%%dir /%%p\n' -o \ - -path '*/modules.*' -printf '%%%%ghost /%%p\n' -o \ + -type d -o \ + -path '*/modules.*' -printf '%%%%%%%%ghost /%%p\n' -o \ + -name '*.ko' -prune -o \ -printf '/%%p\n' + cat %my_builddir/base-modules + echo '%%%%config /etc/modprobe.d/module-renames' find $obj_dir \ - -type d -printf '%%%%dir /%%p\n' -o \ + -type d -o \ + -printf '/%%p\n' + fi + test -d lib/firmware/$KERNELRELEASE && \ + find lib/firmware/$KERNELRELEASE \ + -type d -o \ -printf '/%%p\n' - echo '%%dir /etc/modprobe.d/' - echo '%%config /etc/modprobe.d/module-renames' if [ -e .%_docdir/%name ]; then - echo "%%doc %_docdir/%name" + echo "%%%%doc %_docdir/%name" fi -) > %my_builddir/kernel.files -# Set up some module aliases -install -d -m 755 %buildroot/etc/modprobe.d/ -install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ - -%pre -f pre.sh +) | add_dirs_to_filelist > %my_builddir/kernel-base.files +%if %split_packages + ( echo "%%%%defattr(-, root, root)" + cat %my_builddir/main-modules + ) | add_dirs_to_filelist > %my_builddir/kernel-main.files + ( echo "%%%%defattr(-, root, root)" + cat %my_builddir/unsupported-modules + ) | add_dirs_to_filelist > %my_builddir/kernel-extra.files +%endif +# Hardlink duplicate files automatically (from package fdupes): It doesn't safe +# much, but it keeps rpmlint from breaking the package build. +%fdupes $RPM_BUILD_ROOT +cd %my_builddir # it helps if rpm can find the file lists ... %post -f post.sh %postun -f postun.sh +%if %split_packages + +%files -f kernel-main.files +%else + +%files -f kernel-base.files +%endif + +%package -n kernel-ppc64-base +Summary: Kernel for ppc64 Systems - base modules +License: GPL v2 only +Group: System/Kernel +Url: http://www.kernel.org/ +AutoReqProv: on +Requires(pre): coreutils awk +Requires(post): module-init-tools +Requires(post): perl-Bootloader +Requires(post): mkinitrd + +%description -n kernel-ppc64-base +This package contains the kernel for: + +IBM pSeries 64bit machines IBM iSeries 64bit machines Apple G5 machines +Sony Playstation 3 + +The boot file is /boot/vmlinux. + +The home page of the ppc64 project is http://www.penguinppc.org/ + +This package contains only the base modules, required in all installs. + + + +Authors: +-------- + Linus Torvalds <torvalds@linux-foundation.org> + Paul Mackeras <paulus@samba.org> + Tom Gall <tom_gall@vnet.ibm.com> + see /usr/src/linux/CREDITS for more details. + +Source Timestamp: 2008-09-29 15:31:19 +0200 -%files -f kernel.files +%pre -n kernel-ppc64-base -f pre-base.sh + +%post -n kernel-ppc64-base -f post-base.sh +%if %split_packages + +%files -n kernel-ppc64-base -f kernel-base.files +%endif +%package -n kernel-ppc64-extra +Summary: Kernel for ppc64 Systems - extra modules +License: GPL v2 only +Group: System/Kernel +Url: http://www.kernel.org/ +AutoReqProv: on +Requires: kernel-ppc64 = %version-%release +Requires(pre): coreutils awk +Requires(post): module-init-tools +Requires(post): perl-Bootloader +Requires(post): mkinitrd + +%description -n kernel-ppc64-extra +This package contains the kernel for: + +IBM pSeries 64bit machines IBM iSeries 64bit machines Apple G5 machines +Sony Playstation 3 + +The boot file is /boot/vmlinux. + +The home page of the ppc64 project is http://www.penguinppc.org/ + +This package contains additional modules not supported by Novell. + + + +Authors: +-------- + Linus Torvalds <torvalds@linux-foundation.org> + Paul Mackeras <paulus@samba.org> + Tom Gall <tom_gall@vnet.ibm.com> + see /usr/src/linux/CREDITS for more details. + +Source Timestamp: 2008-09-29 15:31:19 +0200 + +%post -n kernel-ppc64-extra -f post-extra.sh +%if %split_packages + +%files -n kernel-ppc64-extra -f kernel-extra.files +%endif ++++++ kernel-ps3.spec ++++++ --- /var/tmp/diff_new_pack.o25057/_old 2008-09-29 18:09:42.000000000 +0200 +++ /var/tmp/diff_new_pack.o25057/_new 2008-09-29 18:09:43.000000000 +0200 @@ -30,7 +30,6 @@ %define build_xen 0 %define build_um 0 %define build_vanilla 0 -%define build_nomodules 0 %if %{build_flavor} == "kdump" %define build_kdump 1 %endif @@ -43,19 +42,18 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%if %{build_flavor} == "ps3" -%define build_nomodules 1 -%endif Name: kernel-ps3 Summary: kernel for ps3 bootloader Version: 2.6.27 -Release: 7 +Release: 8 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ AutoReqProv: on -BuildRequires: coreutils module-init-tools +BuildRequires: coreutils module-init-tools sparse +BuildRequires: fdupes +Requires: kernel-ps3-base = %version-%release Requires(pre): coreutils awk Requires(post): module-init-tools # This Requires is wrong, because the post/postun scripts have a @@ -68,6 +66,9 @@ Requires(post): perl-Bootloader Requires(post): mkinitrd Recommends: kerneloops +%if ! %sles_version +Recommends: kernel-ps3-extra +%endif #!BuildIgnore: perl-Bootloader mkinitrd %if ! 0%{?opensuse_bs} BuildRequires: kernel-dummy @@ -134,7 +135,6 @@ Source32: config-subst Source33: check-for-config-changes Source34: check-supported-list -Source35: install-configs Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where @@ -154,6 +154,7 @@ Source109: patches.kernel.org.tar.bz2 Source110: patches.apparmor.tar.bz2 Source111: patches.rt.tar.bz2 +Source112: patches.trace.tar.bz2 Source120: kabi.tar.bz2 %define my_builddir %_builddir/%{name}-%{version} BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -180,8 +181,21 @@ Obsoletes: rt2x00-kmp Obsoletes: rfswitch-kmp Obsoletes: uvcvideo-kmp -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks,install-configs}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks}) %define symbols %(set -- kernel-ps3 ps3 $(case ps3 in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) +%define subarch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/ps3$') +# Define some CONFIG variables as rpm macros as well. (rpm cannot handle +# defining them all at once.) +%define config_vars CONFIG_MODULES +%{expand:%(eval "$(test -n "%subarch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%subarch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)} +%if %build_vanilla || %CONFIG_MODULES != "y" +%define split_packages 0 +%else +%define split_packages 1 +%endif +# Build with bash instead of sh as the shell: this turns on bash +# extensions like <(...). +%define _buildshell /bin/bash # Provide the exported symbols as "ksym(symbol) = hash" %define __find_provides %_sourcedir/find-provides %name # Will modules not listed in supported.conf abort the kernel build (0/1)? @@ -198,7 +212,7 @@ -Source Timestamp: 2008-09-15 10:58:05 +0200 +Source Timestamp: 2008-09-29 15:31:19 +0200 %prep if ! [ -e %_sourcedir/linux-2.6.26.tar.bz2 ]; then @@ -208,16 +222,21 @@ fi echo "Architecture symbol(s):" %symbols # Unpack all sources and patches -%setup -q -c -T -a 0 -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109 -a 110 -a 111 -a 120 -# Generate the list of supported modules -( %_sourcedir/guards %symbols < %_sourcedir/supported.conf +%setup -q -c -T -a 0 -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109 -a 110 -a 111 -a 112 -a 120 +supported_conf() { + %_sourcedir/guards %symbols $* < %_sourcedir/supported.conf | sort -u +} +# Generate the list of modules to be marked as supported +( supported_conf base for how in external; do - ( %_sourcedir/guards %symbols < %_sourcedir/supported.conf - %_sourcedir/guards %symbols < %_sourcedir/supported.conf - %_sourcedir/guards %symbols $how < %_sourcedir/supported.conf \ - ) | sort | uniq -u | sed -e 's:$: '"$how"':' + comm -2 -3 <(supported_conf base $how) <(supported_conf base) \ + | sed -e 's:$: '"$how"':' done -) | sed -e 's,.*/,,' | sort > linux-2.6.26/Module.supported +) | sed -e 's,.*/,,' -e 's,\.ko$,,' > linux-2.6.26/Module.supported +# Create grep pattern file for the modules to end up in the base package +comm -2 -3 <(supported_conf base) <(supported_conf) \ + | sed -e 's:.*/::' -e 's:^:\\/:' -e 's:$:\.ko$:' \ + > %my_builddir/grep-for-base-modules cd linux-2.6.26 # Find out for which architecture to build. We do this here, and use the # result in the %build and %install sections. @@ -225,10 +244,7 @@ # On architectures with a bi-arch or cross compiler, we can compile for # an architecture different from %arch. The location of the config file # tells us for which architecture to compile. -set -- $( - for config in $(%_sourcedir/guards %symbols < %_sourcedir/config.conf) ; do - [ ${config#*/} = ps3 ] && echo $config - done) +set -- %subarch_flavor if [ $# -ne 1 ]; then echo "$# config files found for this spec file (but one needed)" >&2 exit 1 @@ -258,9 +274,9 @@ if [ -f %_sourcedir/localversion ] ; then cat %_sourcedir/localversion > localversion fi -%_sourcedir/install-configs %_sourcedir .. $RELEASE -config=arch/$subarch/defconfig.ps3 -cat $config \ +cat ../config/%subarch_flavor \ +| %_sourcedir/config-subst CONFIG_LOCALVERSION '"'-$RELEASE-ps3'"' \ +| %_sourcedir/config-subst CONFIG_SUSE_KERNEL y \ %if 0%{?__debug_package:1} | %_sourcedir/config-subst CONFIG_DEBUG_INFO y \ %endif @@ -280,13 +296,14 @@ EOF %endif cat >> ../.rpm-defs <<EOF -KERNELRELEASE=2.6.27-rc6-$RELEASE-ps3 +KERNELRELEASE=2.6.27-rc7-$RELEASE-ps3 EOF %if 0%{?__debug_package:1} cat >> ../.rpm-defs <<EOF MAKE_ARGS="\$MAKE_ARGS CONFIG_DEBUG_INFO=y" EOF %endif +echo CONFIG_MODULES=%CONFIG_MODULES >> ../.rpm-defs %build source .rpm-defs @@ -321,7 +338,7 @@ export KBUILD_SYMTYPES=1 EOF source .kernel-binary.spec.buildenv -make %{?jobs:-j%jobs} all $MAKE_ARGS +make %{?jobs:-j%jobs} all $MAKE_ARGS CONFIG_DEBUG_SECTION_MISMATCH=y %install source .rpm-defs @@ -416,13 +433,16 @@ sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:ps3:g" \ - %_sourcedir/pre.sh > ../pre.sh -( cat %_sourcedir/functions.sh + %_sourcedir/pre.sh > ../pre-base.sh +for sub in '-base' '' '-extra'; do + ( cat %_sourcedir/functions.sh sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:ps3:g" \ + -e "s:@SUBPACKAGE@:kernel-ps3$sub:g" \ %_sourcedir/post.sh -) > ../post.sh + ) > ../post$sub.sh +done ( cat %_sourcedir/functions.sh sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ @@ -435,18 +455,16 @@ ln -s $image$suffix %buildroot/boot/$image$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix cp .config %buildroot/boot/config-$KERNELRELEASE -%if ! %build_nomodules +gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz +if [ $CONFIG_MODULES = y ]; then make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot -%endif -if ! %_sourcedir/check-supported-list \ + if ! %_sourcedir/check-supported-list \ %_sourcedir %buildroot/lib/modules/$KERNELRELEASE; then %if %supported_modules_check exit 1 %endif echo "Consistency check error: please update supported.conf." -fi -gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz -if grep -q '^CONFIG_MODULES=y$' .config; then + fi # Preserve exports from previous kernels when possible. old_symsets=%my_builddir/kabi/$SUBARCH/symsets-ps3.tar.gz [ -e $old_symsets ] || old_symsets= @@ -460,42 +478,41 @@ %buildroot/boot/symsets-$KERNELRELEASE.tar.gz \ $old_symsets || [ -n "$ignore_kabi_changes" -o %tolerate_kabi_changes -ge 8 ] -fi -# Also put the resulting file in $obj_dir/$SUBARCH/ps3 -# so that kernel-source + kernel-ps3 is sufficient for building -# modules that have modversions as well. -obj_dir=usr/src/linux-${KERNELRELEASE%%-ps3}-obj -mkdir -p %buildroot/$obj_dir/$SUBARCH/ps3 -cp Module.symvers %buildroot/$obj_dir/$SUBARCH/ps3 -# Table of types used in exported symbols (for modversion debugging). -%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-$KERNELRELEASE -if [ -s %buildroot/boot/symtypes-$KERNELRELEASE ]; then + # Also put the resulting file in $obj_dir/$SUBARCH/ps3 + # so that kernel-source + kernel-ps3 is sufficient for building + # modules that have modversions as well. + obj_dir=usr/src/linux-${KERNELRELEASE%%-ps3}-obj + mkdir -p %buildroot/$obj_dir/$SUBARCH/ps3 + cp Module.symvers %buildroot/$obj_dir/$SUBARCH/ps3 + # Table of types used in exported symbols (for modversion debugging). + %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-$KERNELRELEASE + if [ -s %buildroot/boot/symtypes-$KERNELRELEASE ]; then gzip -9 %buildroot/boot/symtypes-$KERNELRELEASE -else + else rm -f %buildroot/boot/symtypes-$KERNELRELEASE -fi -# Some architecture's $(uname -m) output is different from the ARCH -# parameter that needs to be passed to kbuild. Create symlinks from -# $(uname -m) to the ARCH directory. -[ -e %buildroot/$obj_dir/%_target_cpu ] \ + fi + # Some architecture's $(uname -m) output is different from the ARCH + # parameter that needs to be passed to kbuild. Create symlinks from + # $(uname -m) to the ARCH directory. + [ -e %buildroot/$obj_dir/%_target_cpu ] \ || ln -sf $SUBARCH %buildroot/$obj_dir/%_target_cpu %ifarch ppc ppc64 -[ -e %buildroot/$obj_dir/ppc ] \ + [ -e %buildroot/$obj_dir/ppc ] \ || ln -s $SUBARCH %buildroot/$obj_dir/ppc -[ -e %buildroot/$obj_dir/ppc64 ] \ + [ -e %buildroot/$obj_dir/ppc64 ] \ || ln -s $SUBARCH %buildroot/$obj_dir/ppc64 %endif -# Check for kABI changes -KABI=0 -if [ -e %my_builddir/kabi/$SUBARCH/symvers-ps3 ]; then + # Check for kABI changes + KABI=0 + if [ -e %my_builddir/kabi/$SUBARCH/symvers-ps3 ]; then %_sourcedir/kabi-checks \ %my_builddir/kabi/$SUBARCH/symvers-ps3 \ Module.symvers \ %my_builddir/kabi/commonsyms \ %my_builddir/kabi/usedsyms \ || KABI=$? -fi -if [ $KABI -gt %tolerate_kabi_changes ]; then + fi + if [ $KABI -gt %tolerate_kabi_changes ]; then echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ "of %tolerate_kabi_changes. Please try to avoid the kABI changes." if [ ! -e %my_builddir/kabi/$SUBARCH/ignore-ps3 -a \ @@ -507,68 +524,198 @@ fi # Indicate the ABI badness in build result emails. echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag -fi -if [ $KABI -ge 8 ]; then + fi + if [ $KABI -ge 8 ]; then echo "To find out which types have changed relative to the reference" \ "symbols, diff the symtypes.gz files of the reference kernel" \ "against the symtypes.gz file from this build." -fi -# We were building in %my_builddir/linux-2.6.26, but the sources will -# later be installed in /usr/src/linux-2.6.26-%source_rel. Fix up the -# build symlink. -# need to fake modules directory to satisfy scripts -%if %build_nomodules -mkdir -p %buildroot/lib/modules/$KERNELRELEASE/ -%endif -rm -f %buildroot/lib/modules/$KERNELRELEASE/{source,build} -ln -s /usr/src/linux-${KERNELRELEASE%%-ps3} \ + fi + # We were building in %my_builddir/linux-2.6.26, but the sources will + # later be installed in /usr/src/linux-2.6.26-%source_rel. Fix up the + # build symlink. + rm -f %buildroot/lib/modules/$KERNELRELEASE/{source,build} + ln -s /usr/src/linux-${KERNELRELEASE%%-ps3} \ %buildroot/lib/modules/$KERNELRELEASE/source -ln -s /$obj_dir/$SUBARCH/ps3 \ + ln -s /$obj_dir/$SUBARCH/ps3 \ %buildroot/lib/modules/$KERNELRELEASE/build -# Abort if there are any undefined symbols -msg="$(/sbin/depmod -F %buildroot/boot/System.map-$KERNELRELEASE \ + # Abort if there are any undefined symbols + msg="$(/sbin/depmod -F %buildroot/boot/System.map-$KERNELRELEASE \ -b %buildroot -ae $KERNELRELEASE 2>&1)" -if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then + if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then exit 1 -fi -# Create a dummy initrd with roughly the size the real one will have. -# That way, YaST will know that this package requires some additional -# space in /boot. -dd if=/dev/zero of=%buildroot/boot/initrd-$KERNELRELEASE \ + fi + # Create a dummy initrd with roughly the size the real one will have. + # That way, YaST will know that this package requires some additional + # space in /boot. + dd if=/dev/zero of=%buildroot/boot/initrd-$KERNELRELEASE \ bs=1024 seek=2047 count=1 -# Collect the file list. +%if %split_packages + # Generate the lists of supported and unsupported modules. + ( cd %buildroot + for module in $(find lib/modules/$KERNELRELEASE -type f -name '*.ko'); do + case "$(/sbin/modinfo -F supported $module)" in + (yes|external) + echo "/$module" >> %my_builddir/supported-modules + ;; + (*) + echo "/$module" >> %my_builddir/unsupported-modules + ;; + esac + done + ) + add_dependent_modules() { + local modules_dep=$1 + xargs make -rRs -f <(echo -e '%:\n\t@echo $@' ; cat $modules_dep) + } + modules_dep=%buildroot/lib/modules/$KERNELRELEASE/modules.dep + # Make sure that no supported modules depend on any unsupported modules. + dependent_unsupported_modules=$( + comm -3 <(sort %my_builddir/supported-modules) \ + <(cat %my_builddir/supported-modules \ + | add_dependent_modules $modules_dep \ + | sort)) + if [ -n "$dependent_unsupported_modules" ]; then + echo "The following unsupported modules are used by supported modules:" + echo "$dependent_unsupported_modules" + echo "Please fix supported.conf." + exit 1 + fi + # Compute the list of base modules: modules that core modules depend on + # implicitly are also core modules. + grep -f %my_builddir/grep-for-base-modules %my_builddir/supported-modules \ + | add_dependent_modules $modules_dep > %my_builddir/base-modules + # All supported modules which are not core modules belong in kernel-kernel-ps3. + comm -3 <(sort %my_builddir/supported-modules) \ + <(sort %my_builddir/base-modules) \ + > %my_builddir/main-modules +%else + ( cd %buildroot + find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' + ) > %my_builddir/base-modules +%endif + # Set up some module aliases + install -d -m 755 %buildroot/etc/modprobe.d/ + install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ +fi +add_dirs_to_filelist() { + local filelist + filelist=$(cat) + echo "$filelist" + # Below, we do this: + # - remove filelist macros + # - remove last pathname component + # - generate all parents and make the list unique + # - skip directories owned be other packages + # - add the %dir prefix (double-escaped for find and rpm) + echo "$filelist" \ + | sed -re 's:%%%%[a-z]+(\([^)]+\))? ?::g' \ + | sed -re 's:/[^/]+$::' \ + | sed -nre ':a; p; s:/[^/]+$::; ta' \ + | sort -u \ + | sed -r -e '\:^(|/boot|/etc|/lib(/modules|/firmware)?|/usr(/src)?)$:d' \ + | sed -e 's:^:%%%%dir :' +} +# Collect the file lists. ( cd %buildroot - echo "%%defattr(-, root, root)" + echo "%%%%defattr(-, root, root)" find boot \ - \( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \ + \( -type l -o -name 'initrd-*' \) -printf '%%%%%%%%ghost /%%p\n' -o \ -type f -printf '/%%p\n' + if [ $CONFIG_MODULES = y ]; then find lib/modules/$KERNELRELEASE \ - -type d -printf '%%%%dir /%%p\n' -o \ - -path '*/modules.*' -printf '%%%%ghost /%%p\n' -o \ - -printf '/%%p\n' - test -d lib/firmware && \ - find lib/firmware/$KERNELRELEASE \ - -type d -printf '%%%%dir /%%p\n' -o \ - -path '*/modules.*' -printf '%%%%ghost /%%p\n' -o \ + -type d -o \ + -path '*/modules.*' -printf '%%%%%%%%ghost /%%p\n' -o \ + -name '*.ko' -prune -o \ -printf '/%%p\n' + cat %my_builddir/base-modules + echo '%%%%config /etc/modprobe.d/module-renames' find $obj_dir \ - -type d -printf '%%%%dir /%%p\n' -o \ + -type d -o \ + -printf '/%%p\n' + fi + test -d lib/firmware/$KERNELRELEASE && \ + find lib/firmware/$KERNELRELEASE \ + -type d -o \ -printf '/%%p\n' - echo '%%dir /etc/modprobe.d/' - echo '%%config /etc/modprobe.d/module-renames' if [ -e .%_docdir/%name ]; then - echo "%%doc %_docdir/%name" + echo "%%%%doc %_docdir/%name" fi -) > %my_builddir/kernel.files -# Set up some module aliases -install -d -m 755 %buildroot/etc/modprobe.d/ -install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ - -%pre -f pre.sh +) | add_dirs_to_filelist > %my_builddir/kernel-base.files +%if %split_packages + ( echo "%%%%defattr(-, root, root)" + cat %my_builddir/main-modules + ) | add_dirs_to_filelist > %my_builddir/kernel-main.files + ( echo "%%%%defattr(-, root, root)" + cat %my_builddir/unsupported-modules + ) | add_dirs_to_filelist > %my_builddir/kernel-extra.files +%endif +# Hardlink duplicate files automatically (from package fdupes): It doesn't safe +# much, but it keeps rpmlint from breaking the package build. +%fdupes $RPM_BUILD_ROOT +cd %my_builddir # it helps if rpm can find the file lists ... %post -f post.sh %postun -f postun.sh +%if %split_packages + +%files -f kernel-main.files +%else + +%files -f kernel-base.files +%endif -%files -f kernel.files +%package -n kernel-ps3-base +Summary: kernel for ps3 bootloader +License: GPL v2 only +Group: System/Kernel +Url: http://www.kernel.org/ +AutoReqProv: on +Requires(pre): coreutils awk +Requires(post): module-init-tools +Requires(post): perl-Bootloader +Requires(post): mkinitrd + +%description -n kernel-ps3-base +This package contains the kernel for the ps3 bootloader only. PS3 +systems only have 4MB of flash space for the bootloader, so this kernel +needs to be as small as possible. + + + +Source Timestamp: 2008-09-29 15:31:19 +0200 + +%pre -n kernel-ps3-base -f pre-base.sh + +%post -n kernel-ps3-base -f post-base.sh +%if %split_packages + +%files -n kernel-ps3-base -f kernel-base.files +%endif +%package -n kernel-ps3-extra +Summary: kernel for ps3 bootloader +License: GPL v2 only +Group: System/Kernel +Url: http://www.kernel.org/ +AutoReqProv: on +Requires: kernel-ps3 = %version-%release +Requires(pre): coreutils awk +Requires(post): module-init-tools +Requires(post): perl-Bootloader +Requires(post): mkinitrd + +%description -n kernel-ps3-extra +This package contains the kernel for the ps3 bootloader only. PS3 +systems only have 4MB of flash space for the bootloader, so this kernel +needs to be as small as possible. + + + +Source Timestamp: 2008-09-29 15:31:19 +0200 + +%post -n kernel-ps3-extra -f post-extra.sh +%if %split_packages + +%files -n kernel-ps3-extra -f kernel-extra.files +%endif ++++++ kernel-s390.spec ++++++ --- /var/tmp/diff_new_pack.o25057/_old 2008-09-29 18:09:43.000000000 +0200 +++ /var/tmp/diff_new_pack.o25057/_new 2008-09-29 18:09:43.000000000 +0200 @@ -30,7 +30,6 @@ %define build_xen 0 %define build_um 0 %define build_vanilla 0 -%define build_nomodules 0 %if %{build_flavor} == "kdump" %define build_kdump 1 %endif @@ -43,19 +42,18 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%if %{build_flavor} == "ps3" -%define build_nomodules 1 -%endif Name: kernel-s390 Summary: The Standard Kernel Version: 2.6.27 -Release: 7 +Release: 8 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ AutoReqProv: on -BuildRequires: coreutils module-init-tools +BuildRequires: coreutils module-init-tools sparse +BuildRequires: fdupes +Requires: kernel-s390-base = %version-%release Requires(pre): coreutils awk Requires(post): module-init-tools # This Requires is wrong, because the post/postun scripts have a @@ -68,6 +66,9 @@ Requires(post): perl-Bootloader Requires(post): mkinitrd Recommends: kerneloops +%if ! %sles_version +Recommends: kernel-s390-extra +%endif #!BuildIgnore: perl-Bootloader mkinitrd %if ! 0%{?opensuse_bs} BuildRequires: kernel-dummy @@ -131,7 +132,6 @@ Source32: config-subst Source33: check-for-config-changes Source34: check-supported-list -Source35: install-configs Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where @@ -151,6 +151,7 @@ Source109: patches.kernel.org.tar.bz2 Source110: patches.apparmor.tar.bz2 Source111: patches.rt.tar.bz2 +Source112: patches.trace.tar.bz2 Source120: kabi.tar.bz2 %define my_builddir %_builddir/%{name}-%{version} BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -177,8 +178,21 @@ Obsoletes: rt2x00-kmp Obsoletes: rfswitch-kmp Obsoletes: uvcvideo-kmp -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks,install-configs}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks}) %define symbols %(set -- kernel-s390 s390 $(case s390 in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) +%define subarch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/s390$') +# Define some CONFIG variables as rpm macros as well. (rpm cannot handle +# defining them all at once.) +%define config_vars CONFIG_MODULES +%{expand:%(eval "$(test -n "%subarch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%subarch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)} +%if %build_vanilla || %CONFIG_MODULES != "y" +%define split_packages 0 +%else +%define split_packages 1 +%endif +# Build with bash instead of sh as the shell: this turns on bash +# extensions like <(...). +%define _buildshell /bin/bash # Provide the exported symbols as "ksym(symbol) = hash" %define __find_provides %_sourcedir/find-provides %name # Will modules not listed in supported.conf abort the kernel build (0/1)? @@ -193,7 +207,7 @@ -Source Timestamp: 2008-09-15 10:58:05 +0200 +Source Timestamp: 2008-09-29 15:31:19 +0200 %prep if ! [ -e %_sourcedir/linux-2.6.26.tar.bz2 ]; then @@ -203,16 +217,21 @@ fi echo "Architecture symbol(s):" %symbols # Unpack all sources and patches -%setup -q -c -T -a 0 -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109 -a 110 -a 111 -a 120 -# Generate the list of supported modules -( %_sourcedir/guards %symbols < %_sourcedir/supported.conf +%setup -q -c -T -a 0 -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109 -a 110 -a 111 -a 112 -a 120 +supported_conf() { + %_sourcedir/guards %symbols $* < %_sourcedir/supported.conf | sort -u +} +# Generate the list of modules to be marked as supported +( supported_conf base for how in external; do - ( %_sourcedir/guards %symbols < %_sourcedir/supported.conf - %_sourcedir/guards %symbols < %_sourcedir/supported.conf - %_sourcedir/guards %symbols $how < %_sourcedir/supported.conf \ - ) | sort | uniq -u | sed -e 's:$: '"$how"':' + comm -2 -3 <(supported_conf base $how) <(supported_conf base) \ + | sed -e 's:$: '"$how"':' done -) | sed -e 's,.*/,,' | sort > linux-2.6.26/Module.supported +) | sed -e 's,.*/,,' -e 's,\.ko$,,' > linux-2.6.26/Module.supported +# Create grep pattern file for the modules to end up in the base package +comm -2 -3 <(supported_conf base) <(supported_conf) \ + | sed -e 's:.*/::' -e 's:^:\\/:' -e 's:$:\.ko$:' \ + > %my_builddir/grep-for-base-modules cd linux-2.6.26 # Find out for which architecture to build. We do this here, and use the # result in the %build and %install sections. @@ -220,10 +239,7 @@ # On architectures with a bi-arch or cross compiler, we can compile for # an architecture different from %arch. The location of the config file # tells us for which architecture to compile. -set -- $( - for config in $(%_sourcedir/guards %symbols < %_sourcedir/config.conf) ; do - [ ${config#*/} = s390 ] && echo $config - done) +set -- %subarch_flavor if [ $# -ne 1 ]; then echo "$# config files found for this spec file (but one needed)" >&2 exit 1 @@ -253,9 +269,9 @@ if [ -f %_sourcedir/localversion ] ; then cat %_sourcedir/localversion > localversion fi -%_sourcedir/install-configs %_sourcedir .. $RELEASE -config=arch/$subarch/defconfig.s390 -cat $config \ +cat ../config/%subarch_flavor \ +| %_sourcedir/config-subst CONFIG_LOCALVERSION '"'-$RELEASE-s390'"' \ +| %_sourcedir/config-subst CONFIG_SUSE_KERNEL y \ %if 0%{?__debug_package:1} | %_sourcedir/config-subst CONFIG_DEBUG_INFO y \ %endif @@ -275,13 +291,14 @@ EOF %endif cat >> ../.rpm-defs <<EOF -KERNELRELEASE=2.6.27-rc6-$RELEASE-s390 +KERNELRELEASE=2.6.27-rc7-$RELEASE-s390 EOF %if 0%{?__debug_package:1} cat >> ../.rpm-defs <<EOF MAKE_ARGS="\$MAKE_ARGS CONFIG_DEBUG_INFO=y" EOF %endif +echo CONFIG_MODULES=%CONFIG_MODULES >> ../.rpm-defs %build source .rpm-defs @@ -316,7 +333,7 @@ export KBUILD_SYMTYPES=1 EOF source .kernel-binary.spec.buildenv -make %{?jobs:-j%jobs} all $MAKE_ARGS +make %{?jobs:-j%jobs} all $MAKE_ARGS CONFIG_DEBUG_SECTION_MISMATCH=y %install source .rpm-defs @@ -411,13 +428,16 @@ sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:s390:g" \ - %_sourcedir/pre.sh > ../pre.sh -( cat %_sourcedir/functions.sh + %_sourcedir/pre.sh > ../pre-base.sh +for sub in '-base' '' '-extra'; do + ( cat %_sourcedir/functions.sh sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:s390:g" \ + -e "s:@SUBPACKAGE@:kernel-s390$sub:g" \ %_sourcedir/post.sh -) > ../post.sh + ) > ../post$sub.sh +done ( cat %_sourcedir/functions.sh sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ @@ -430,18 +450,16 @@ ln -s $image$suffix %buildroot/boot/$image$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix cp .config %buildroot/boot/config-$KERNELRELEASE -%if ! %build_nomodules +gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz +if [ $CONFIG_MODULES = y ]; then make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot -%endif -if ! %_sourcedir/check-supported-list \ + if ! %_sourcedir/check-supported-list \ %_sourcedir %buildroot/lib/modules/$KERNELRELEASE; then %if %supported_modules_check exit 1 %endif echo "Consistency check error: please update supported.conf." -fi -gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz -if grep -q '^CONFIG_MODULES=y$' .config; then + fi # Preserve exports from previous kernels when possible. old_symsets=%my_builddir/kabi/$SUBARCH/symsets-s390.tar.gz [ -e $old_symsets ] || old_symsets= @@ -455,42 +473,41 @@ %buildroot/boot/symsets-$KERNELRELEASE.tar.gz \ $old_symsets || [ -n "$ignore_kabi_changes" -o %tolerate_kabi_changes -ge 8 ] -fi -# Also put the resulting file in $obj_dir/$SUBARCH/s390 -# so that kernel-source + kernel-s390 is sufficient for building -# modules that have modversions as well. -obj_dir=usr/src/linux-${KERNELRELEASE%%-s390}-obj -mkdir -p %buildroot/$obj_dir/$SUBARCH/s390 -cp Module.symvers %buildroot/$obj_dir/$SUBARCH/s390 -# Table of types used in exported symbols (for modversion debugging). -%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-$KERNELRELEASE -if [ -s %buildroot/boot/symtypes-$KERNELRELEASE ]; then + # Also put the resulting file in $obj_dir/$SUBARCH/s390 + # so that kernel-source + kernel-s390 is sufficient for building + # modules that have modversions as well. + obj_dir=usr/src/linux-${KERNELRELEASE%%-s390}-obj + mkdir -p %buildroot/$obj_dir/$SUBARCH/s390 + cp Module.symvers %buildroot/$obj_dir/$SUBARCH/s390 + # Table of types used in exported symbols (for modversion debugging). + %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-$KERNELRELEASE + if [ -s %buildroot/boot/symtypes-$KERNELRELEASE ]; then gzip -9 %buildroot/boot/symtypes-$KERNELRELEASE -else + else rm -f %buildroot/boot/symtypes-$KERNELRELEASE -fi -# Some architecture's $(uname -m) output is different from the ARCH -# parameter that needs to be passed to kbuild. Create symlinks from -# $(uname -m) to the ARCH directory. -[ -e %buildroot/$obj_dir/%_target_cpu ] \ + fi + # Some architecture's $(uname -m) output is different from the ARCH + # parameter that needs to be passed to kbuild. Create symlinks from + # $(uname -m) to the ARCH directory. + [ -e %buildroot/$obj_dir/%_target_cpu ] \ || ln -sf $SUBARCH %buildroot/$obj_dir/%_target_cpu %ifarch ppc ppc64 -[ -e %buildroot/$obj_dir/ppc ] \ + [ -e %buildroot/$obj_dir/ppc ] \ || ln -s $SUBARCH %buildroot/$obj_dir/ppc -[ -e %buildroot/$obj_dir/ppc64 ] \ + [ -e %buildroot/$obj_dir/ppc64 ] \ || ln -s $SUBARCH %buildroot/$obj_dir/ppc64 %endif -# Check for kABI changes -KABI=0 -if [ -e %my_builddir/kabi/$SUBARCH/symvers-s390 ]; then + # Check for kABI changes + KABI=0 + if [ -e %my_builddir/kabi/$SUBARCH/symvers-s390 ]; then %_sourcedir/kabi-checks \ %my_builddir/kabi/$SUBARCH/symvers-s390 \ Module.symvers \ %my_builddir/kabi/commonsyms \ %my_builddir/kabi/usedsyms \ || KABI=$? -fi -if [ $KABI -gt %tolerate_kabi_changes ]; then + fi + if [ $KABI -gt %tolerate_kabi_changes ]; then echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ "of %tolerate_kabi_changes. Please try to avoid the kABI changes." if [ ! -e %my_builddir/kabi/$SUBARCH/ignore-s390 -a \ @@ -502,68 +519,198 @@ fi # Indicate the ABI badness in build result emails. echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag -fi -if [ $KABI -ge 8 ]; then + fi + if [ $KABI -ge 8 ]; then echo "To find out which types have changed relative to the reference" \ "symbols, diff the symtypes.gz files of the reference kernel" \ "against the symtypes.gz file from this build." -fi -# We were building in %my_builddir/linux-2.6.26, but the sources will -# later be installed in /usr/src/linux-2.6.26-%source_rel. Fix up the -# build symlink. -# need to fake modules directory to satisfy scripts -%if %build_nomodules -mkdir -p %buildroot/lib/modules/$KERNELRELEASE/ -%endif -rm -f %buildroot/lib/modules/$KERNELRELEASE/{source,build} -ln -s /usr/src/linux-${KERNELRELEASE%%-s390} \ + fi + # We were building in %my_builddir/linux-2.6.26, but the sources will + # later be installed in /usr/src/linux-2.6.26-%source_rel. Fix up the + # build symlink. + rm -f %buildroot/lib/modules/$KERNELRELEASE/{source,build} + ln -s /usr/src/linux-${KERNELRELEASE%%-s390} \ %buildroot/lib/modules/$KERNELRELEASE/source -ln -s /$obj_dir/$SUBARCH/s390 \ + ln -s /$obj_dir/$SUBARCH/s390 \ %buildroot/lib/modules/$KERNELRELEASE/build -# Abort if there are any undefined symbols -msg="$(/sbin/depmod -F %buildroot/boot/System.map-$KERNELRELEASE \ + # Abort if there are any undefined symbols + msg="$(/sbin/depmod -F %buildroot/boot/System.map-$KERNELRELEASE \ -b %buildroot -ae $KERNELRELEASE 2>&1)" -if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then + if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then exit 1 -fi -# Create a dummy initrd with roughly the size the real one will have. -# That way, YaST will know that this package requires some additional -# space in /boot. -dd if=/dev/zero of=%buildroot/boot/initrd-$KERNELRELEASE \ + fi + # Create a dummy initrd with roughly the size the real one will have. + # That way, YaST will know that this package requires some additional + # space in /boot. + dd if=/dev/zero of=%buildroot/boot/initrd-$KERNELRELEASE \ bs=1024 seek=2047 count=1 -# Collect the file list. +%if %split_packages + # Generate the lists of supported and unsupported modules. + ( cd %buildroot + for module in $(find lib/modules/$KERNELRELEASE -type f -name '*.ko'); do + case "$(/sbin/modinfo -F supported $module)" in + (yes|external) + echo "/$module" >> %my_builddir/supported-modules + ;; + (*) + echo "/$module" >> %my_builddir/unsupported-modules + ;; + esac + done + ) + add_dependent_modules() { + local modules_dep=$1 + xargs make -rRs -f <(echo -e '%:\n\t@echo $@' ; cat $modules_dep) + } + modules_dep=%buildroot/lib/modules/$KERNELRELEASE/modules.dep + # Make sure that no supported modules depend on any unsupported modules. + dependent_unsupported_modules=$( + comm -3 <(sort %my_builddir/supported-modules) \ + <(cat %my_builddir/supported-modules \ + | add_dependent_modules $modules_dep \ + | sort)) + if [ -n "$dependent_unsupported_modules" ]; then + echo "The following unsupported modules are used by supported modules:" + echo "$dependent_unsupported_modules" + echo "Please fix supported.conf." + exit 1 + fi + # Compute the list of base modules: modules that core modules depend on + # implicitly are also core modules. + grep -f %my_builddir/grep-for-base-modules %my_builddir/supported-modules \ + | add_dependent_modules $modules_dep > %my_builddir/base-modules + # All supported modules which are not core modules belong in kernel-kernel-s390. + comm -3 <(sort %my_builddir/supported-modules) \ + <(sort %my_builddir/base-modules) \ + > %my_builddir/main-modules +%else + ( cd %buildroot + find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' + ) > %my_builddir/base-modules +%endif + # Set up some module aliases + install -d -m 755 %buildroot/etc/modprobe.d/ + install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ +fi +add_dirs_to_filelist() { + local filelist + filelist=$(cat) + echo "$filelist" + # Below, we do this: + # - remove filelist macros + # - remove last pathname component + # - generate all parents and make the list unique + # - skip directories owned be other packages + # - add the %dir prefix (double-escaped for find and rpm) + echo "$filelist" \ + | sed -re 's:%%%%[a-z]+(\([^)]+\))? ?::g' \ + | sed -re 's:/[^/]+$::' \ + | sed -nre ':a; p; s:/[^/]+$::; ta' \ + | sort -u \ + | sed -r -e '\:^(|/boot|/etc|/lib(/modules|/firmware)?|/usr(/src)?)$:d' \ + | sed -e 's:^:%%%%dir :' +} +# Collect the file lists. ( cd %buildroot - echo "%%defattr(-, root, root)" + echo "%%%%defattr(-, root, root)" find boot \ - \( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \ + \( -type l -o -name 'initrd-*' \) -printf '%%%%%%%%ghost /%%p\n' -o \ -type f -printf '/%%p\n' + if [ $CONFIG_MODULES = y ]; then find lib/modules/$KERNELRELEASE \ - -type d -printf '%%%%dir /%%p\n' -o \ - -path '*/modules.*' -printf '%%%%ghost /%%p\n' -o \ - -printf '/%%p\n' - test -d lib/firmware && \ - find lib/firmware/$KERNELRELEASE \ - -type d -printf '%%%%dir /%%p\n' -o \ - -path '*/modules.*' -printf '%%%%ghost /%%p\n' -o \ + -type d -o \ + -path '*/modules.*' -printf '%%%%%%%%ghost /%%p\n' -o \ + -name '*.ko' -prune -o \ -printf '/%%p\n' + cat %my_builddir/base-modules + echo '%%%%config /etc/modprobe.d/module-renames' find $obj_dir \ - -type d -printf '%%%%dir /%%p\n' -o \ + -type d -o \ + -printf '/%%p\n' + fi + test -d lib/firmware/$KERNELRELEASE && \ + find lib/firmware/$KERNELRELEASE \ + -type d -o \ -printf '/%%p\n' - echo '%%dir /etc/modprobe.d/' - echo '%%config /etc/modprobe.d/module-renames' if [ -e .%_docdir/%name ]; then - echo "%%doc %_docdir/%name" + echo "%%%%doc %_docdir/%name" fi -) > %my_builddir/kernel.files -# Set up some module aliases -install -d -m 755 %buildroot/etc/modprobe.d/ -install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ - -%pre -f pre.sh +) | add_dirs_to_filelist > %my_builddir/kernel-base.files +%if %split_packages + ( echo "%%%%defattr(-, root, root)" + cat %my_builddir/main-modules + ) | add_dirs_to_filelist > %my_builddir/kernel-main.files + ( echo "%%%%defattr(-, root, root)" + cat %my_builddir/unsupported-modules + ) | add_dirs_to_filelist > %my_builddir/kernel-extra.files +%endif +# Hardlink duplicate files automatically (from package fdupes): It doesn't safe +# much, but it keeps rpmlint from breaking the package build. +%fdupes $RPM_BUILD_ROOT +cd %my_builddir # it helps if rpm can find the file lists ... %post -f post.sh %postun -f postun.sh +%if %split_packages + +%files -f kernel-main.files +%else -%files -f kernel.files +%files -f kernel-base.files +%endif + +%package -n kernel-s390-base +Summary: The Standard Kernel - base modules +License: GPL v2 only +Group: System/Kernel +Url: http://www.kernel.org/ +AutoReqProv: on +Requires(pre): coreutils awk +Requires(post): module-init-tools +Requires(post): perl-Bootloader +Requires(post): mkinitrd +%description -n kernel-s390-base +The standard kernel. + +This package contains only the base modules, required in all installs. + + + +Source Timestamp: 2008-09-29 15:31:19 +0200 + +%pre -n kernel-s390-base -f pre-base.sh + +%post -n kernel-s390-base -f post-base.sh +%if %split_packages + +%files -n kernel-s390-base -f kernel-base.files +%endif + +%package -n kernel-s390-extra +Summary: The Standard Kernel - extra modules +License: GPL v2 only +Group: System/Kernel +Url: http://www.kernel.org/ +AutoReqProv: on +Requires: kernel-s390 = %version-%release +Requires(pre): coreutils awk +Requires(post): module-init-tools +Requires(post): perl-Bootloader +Requires(post): mkinitrd + +%description -n kernel-s390-extra +The standard kernel. + +This package contains additional modules not supported by Novell. + + + +Source Timestamp: 2008-09-29 15:31:19 +0200 + +%post -n kernel-s390-extra -f post-extra.sh +%if %split_packages + +%files -n kernel-s390-extra -f kernel-extra.files +%endif ++++++ kernel-source.spec ++++++ --- /var/tmp/diff_new_pack.o25057/_old 2008-09-29 18:09:44.000000000 +0200 +++ /var/tmp/diff_new_pack.o25057/_new 2008-09-29 18:09:44.000000000 +0200 @@ -30,11 +30,12 @@ Name: kernel-source Summary: The Linux Kernel Sources Version: 2.6.27 -Release: 7 +Release: 8 License: GPL v2 only Group: Development/Sources AutoReqProv: off BuildRequires: coreutils sed +BuildRequires: fdupes Requires(post): coreutils sed %if ! 0%{?opensuse_bs} BuildRequires: kernel-dummy @@ -48,6 +49,9 @@ Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.tar.bz2 Source1: functions.sh Source2: source-post.sh +%if "kernel-source" == "kernel-source" +Source3: kernel-source.rpmlintrc +%endif Source10: pre.sh Source11: post.sh Source12: postun.sh @@ -59,7 +63,6 @@ Source30: config-subst Source33: check-for-config-changes Source34: check-supported-list -Source35: install-configs Source37: README.SUSE Source38: kabi-checks Source40: build-source-timestamp @@ -79,8 +82,9 @@ Source55: kernel-ppc64.spec Source56: kernel-ps3.spec Source57: kernel-s390.spec -Source58: kernel-vanilla.spec -Source59: kernel-xen.spec +Source58: kernel-trace.spec +Source59: kernel-vanilla.spec +Source60: kernel-xen.spec Source100: config.tar.bz2 Source101: patches.arch.tar.bz2 Source102: patches.drivers.tar.bz2 @@ -93,13 +97,17 @@ Source109: patches.kernel.org.tar.bz2 Source110: patches.apparmor.tar.bz2 Source111: patches.rt.tar.bz2 +Source112: patches.trace.tar.bz2 Source120: kabi.tar.bz2 -Source121: novell-kmp.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-build Prefix: /usr/src -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,kabi-checks,install-configs}) +# Build with bash instead of sh as the shell: this turns on bash +# extensions like <(...). +%define _buildshell /bin/bash +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,kabi-checks}) %define symbols %(set -- $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define tolerate_unknown_new_config_options 0 +%define with_rt 0 %description Linux kernel sources with many fixes and improvements. @@ -112,7 +120,7 @@ see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-09-15 10:58:05 +0200 +Source Timestamp: 2008-09-29 15:31:19 +0200 %prep if ! [ -e %_sourcedir/linux-2.6.26.tar.bz2 ]; then @@ -121,66 +129,78 @@ fi echo "Architecture symbol(s): %symbols" # Unpack all sources and patches -%setup -q -c -T -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109 -a 110 -a 111 +%setup -q -c -T -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109 -a 110 -a 111 -a 112 %build -mkdir -p $RPM_BUILD_ROOT/usr/src -cd $RPM_BUILD_ROOT/usr/src -# Unpack the vanilla kernel sources -bzip2 -cd %_sourcedir/linux-2.6.26.tar.bz2 \ -| tar xf - -cd linux-2.6.26 -# Hello Linus: hint, hint ... -chmod -Rf a+rX,g-w,o-w . -# Apply the patches needed for this architecture. -%_sourcedir/guards %symbols < %_sourcedir/series.conf \ - > %_builddir/kernel-source-2.6.27/kernel-source.patches -for patch in $(< %_builddir/kernel-source-2.6.27/kernel-source.patches); do - if ! patch -s -F0 -E -p1 --no-backup-if-mismatch -i %_builddir/kernel-source-2.6.27/$patch; then - echo "*** Patch $patch failed ***" - exit 1 - fi -done # Release number without the EXTRAVERSION RELEASE=%source_rel while [ "$RELEASE" != "${RELEASE#[^0-9]*.}" ]; do RELEASE=${RELEASE#[^0-9]*.} done -if [ -f %_sourcedir/localversion ] ; then - cat %_sourcedir/localversion > localversion -fi -%_sourcedir/install-configs %_sourcedir %_builddir/%buildsubdir $RELEASE -KERNELRELEASE=2.6.27-rc6-$RELEASE +KERNELRELEASE=2.6.27-rc7-$RELEASE cat > %_builddir/%{name}-%{version}/.rpm-defs <<EOF KERNELRELEASE=$KERNELRELEASE SYMBOLS="%symbols" EOF -cd .. -mv linux-2.6.26 linux-$KERNELRELEASE -cd linux-$KERNELRELEASE -chmod +x arch/ia64/scripts/toolchain-flags # agruen: necessary? -cd $RPM_BUILD_ROOT/usr/src/linux-$KERNELRELEASE +create_source_tree() { + local name=$1 extrasymbols + shift ; extrasymbols=$* + cp -rld linux-2.6.26.orig $name + cd $name + %_sourcedir/guards %symbols $extrasymbols < %_sourcedir/series.conf \ + > .patches + for patch in $(< .patches); do + if ! patch -s -F0 -E -p1 --no-backup-if-mismatch \ + -i %_builddir/kernel-source-2.6.27/$patch; then + echo "*** Patch $patch failed ***" + exit 1 + fi + done + if [ -f %_sourcedir/localversion ] ; then + cat %_sourcedir/localversion > localversion + fi + cd .. +} +mkdir -p $RPM_BUILD_ROOT/usr/src +cd $RPM_BUILD_ROOT/usr/src +# Unpack the vanilla kernel sources +bzip2 -cd %_sourcedir/linux-2.6.26.tar.bz2 \ +| tar xf - +mv linux-2.6.26 linux-2.6.26.orig +create_source_tree linux-$KERNELRELEASE +%if %with_rt +create_source_tree linux-$KERNELRELEASE-rt RT +%endif for config in $(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep -v vanilla); do arch=${config%/*} flavor=${config#*/} - config=arch/$arch/defconfig.$flavor + config=%_builddir/%buildsubdir/config/$config case "$flavor" in *-*) echo "Flavor '$flavor' must not contain dashes." >&2 exit 1 ;; esac - set -- kernel-$flavor $flavor $(case $flavor in (rt|rt_*) echo RT ;; esac) - %_sourcedir/guards $* %symbols < %_sourcedir/series.conf \ - > %_builddir/kernel-source-2.6.27/kernel-$flavor.patches - diff -q %_builddir/kernel-source-2.6.27/kernel-{source,$flavor}.patches \ + set -- kernel-$flavor $flavor + case $flavor in + (rt|rt_*) + set -- "$@" RT + source_tree=linux-$KERNELRELEASE-rt + ;; + (*) + source_tree=linux-$KERNELRELEASE + ;; + esac + diff -q $source_tree/.patches \ + <(%_sourcedir/guards $* %symbols < %_sourcedir/series.conf) \ || continue o=$RPM_BUILD_ROOT/usr/src/linux-$KERNELRELEASE-obj/$arch/$flavor mkdir -p $o - cp $config $o/.config -%ifarch mips - echo "CONFIG_CROSSCOMPILE=y" >> $o/.config -%endif + cat $config \ + | %_sourcedir/config-subst CONFIG_LOCALVERSION '"'-$flavor'"' \ + | %_sourcedir/config-subst CONFIG_SUSE_KERNEL y \ + > $o/.config + echo "-$RELEASE" > $source_tree/localversion-rpm-release case $flavor in um) MAKE_ARGS="ARCH=$flavor SUBARCH=$arch O=$o" ;; @@ -193,49 +213,33 @@ %if %{tolerate_unknown_new_config_options} yes '' | make oldconfig $MAKE_ARGS %else - make silentoldconfig $MAKE_ARGS < /dev/null + make -C $source_tree silentoldconfig $MAKE_ARGS < /dev/null %_sourcedir/check-for-config-changes $config $o/.config %endif - make prepare $MAKE_ARGS - make scripts $MAKE_ARGS - krel=$(make -s kernelrelease $MAKE_ARGS) + make -C $source_tree prepare $MAKE_ARGS + make -C $source_tree scripts $MAKE_ARGS + krel=$(make -C $source_tree -s kernelrelease $MAKE_ARGS) if [ $KERNELRELEASE != "${krel%%-*}" ]; then echo "Kernel release mismatch: $KERNELRELEASE != ${krel%%-*}" >&2 exit 1 fi - mkdir -p ../../../lib/modules/$krel/ + make -C $source_tree clean $MAKE_ARGS + mkdir -p $RPM_BUILD_ROOT/lib/modules/$krel ln -s ../../../usr/src/linux-$KERNELRELEASE \ - ../../../lib/modules/$krel/source - make clean $MAKE_ARGS - rm -f $o/.config.old + $RPM_BUILD_ROOT/lib/modules/$krel/source # Replace the absolute with a relative path sed -e "s,$RPM_BUILD_ROOT/usr/src/linux-$KERNELRELEASE,../../../linux-$KERNELRELEASE,g" \ -i $o/Makefile + rm -f $o/.config.old done +rm -rf linux-2.6.26.orig +rm -f linux-$KERNELRELEASE/.patches +%if %with_rt +rm -f linux-$KERNELRELEASE-rt/.patches +%endif +# Hardlink duplicate files automatically (from package fdupes). +%fdupes $RPM_BUILD_ROOT cd $RPM_BUILD_ROOT/usr/src/linux-$KERNELRELEASE-obj -set -- */* -for arch_flavor in $* ; do - if ! [ -e obj.files ]; then - (cd $arch_flavor ; find -type f) > obj.files - fi - # Strip ELF files - while read file ; do - strip $file - done <<-EOF - $(xargs -i% file $arch_flavor/% < obj.files \ - | grep ELF \ - | sed -e 's/: .*//') - EOF - if [ $arch_flavor != $1 ]; then - while read file ; do - if [ -s $arch_flavor/$file ] \ - && cmp -s $1/$file $arch_flavor/$file ; then - ln -f $1/$file $arch_flavor/$file - fi - done < obj.files - fi -done -rm -f obj.files set -- * [ -e %_target_cpu ] || ln -s $1 %_target_cpu %ifarch ppc ppc64 @@ -243,9 +247,7 @@ [ -e ppc64 ] || ln -s $1 ppc64 %endif cd $RPM_BUILD_ROOT/usr/src -for name in nftlcore.c nftlmount.c inftlcore.c inftlmount.c ftl.c; do - rm linux-$KERNELRELEASE/drivers/mtd/$name -done +rm -f `find linux-$KERNELRELEASE -name ".gitignore"` # Remove $RPM_BUILD_ROOT prefix from symlinks. for link in $(find $RPM_BUILD_ROOT/usr/src/linux-$KERNELRELEASE-obj -type l); do target=$(readlink $link) @@ -261,8 +263,6 @@ DOC=$RPM_BUILD_ROOT/usr/share/doc/packages/%name mkdir -p $DOC cp %_sourcedir/README.SUSE $DOC -bzip2 -cd %_sourcedir/novell-kmp.tar.bz2 \ -| tar -xf - -C $DOC ln -s /usr/share/doc/packages/%name/README.SUSE \ $RPM_BUILD_ROOT/usr/src/linux-$KERNELRELEASE/ install -m 755 -d $RPM_BUILD_ROOT/etc/rpm @@ -281,11 +281,46 @@ /usr/lib/rpm/kernel-module-subpackage /lib/modules/* EOF -( cat %_sourcedir/functions.sh - sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" %_sourcedir/source-post.sh -) > source-post.sh +%if %with_rt +cat > kernel-source-rt.files <<EOF +%%defattr(-, root, root) +FIXME: splitting cleanly needs some work here. +EOF +%endif +for variant in '' '-rt'; do + ( cat %_sourcedir/functions.sh + sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ + -e "s:@VARIANT@:$variant:g" \ + %_sourcedir/source-post.sh + ) > source-post$variant.sh +done %post -f source-post.sh %files -f kernel-source.files +%package -n kernel-source-rt +Summary: The Linux Kernel Sources +License: GPL v2 only +Group: Development/Sources +Requires(post): coreutils sed +Provides: kernel-source-rt = 2.6.27-%source_rel + +%description -n kernel-source-rt +Linux kernel sources with many fixes and improvements. + + + +Authors: +-------- + Linus Torvalds <torvalds@osdl.org> + + see /usr/src/linux/CREDITS for more details. + +Source Timestamp: 2008-09-29 15:31:19 +0200 + +%post -n kernel-source-rt -f source-post-rt.sh +%if %with_rt + +%files -n kernel-source-rt -f kernel-source.files +%endif ++++++ kernel-syms.spec ++++++ --- /var/tmp/diff_new_pack.o25057/_old 2008-09-29 18:09:44.000000000 +0200 +++ /var/tmp/diff_new_pack.o25057/_new 2008-09-29 18:09:44.000000000 +0200 @@ -29,7 +29,7 @@ Name: kernel-syms Summary: Kernel Symbol Versions (modversions) Version: 2.6.27 -Release: 7 +Release: 8 License: GPL v2 only Group: Development/Sources AutoReqProv: off @@ -38,7 +38,7 @@ BuildRequires: kernel-dummy %endif %ifarch %ix86 -BuildRequires: kernel-debug kernel-default kernel-pae kernel-xen +BuildRequires: kernel-debug kernel-default kernel-pae kernel-trace kernel-xen %else %ifarch ppc BuildRequires: kernel-default kernel-kdump kernel-ppc64 kernel-ps3 @@ -53,10 +53,10 @@ BuildRequires: kernel-default %else %ifarch ia64 -BuildRequires: kernel-debug kernel-default +BuildRequires: kernel-debug kernel-default kernel-trace %else %ifarch x86_64 -BuildRequires: kernel-debug kernel-default kernel-xen +BuildRequires: kernel-debug kernel-default kernel-trace kernel-xen %endif %endif %endif @@ -99,7 +99,7 @@ see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-09-15 10:58:05 +0200 +Source Timestamp: 2008-09-29 15:31:19 +0200 %prep echo "Architecture symbol(s):" %symbols @@ -150,8 +150,385 @@ /usr/src/linux-*-obj /boot/symsets-*-*.tar.gz /lib/modules/*/build - %changelog +* Mon Sep 29 2008 agruen@suse.de +- Do not split kernels which have modules disabled (kernel-ps3) + or which do not differentiate between supported and unsupported + modules (kernel-vanilla). +* Mon Sep 29 2008 hare@suse.de +- patches.drivers/open-fcoe-dcb-support: Fix section annotation + for ixgbe. +- patches.fixes/scsi-enhance-error-codes: Add missing hunk. +- patches.fixes/open-iscsi-git-update: Open-iSCSI updates + (FATE#304283). +- patches.kernel.org/gdth-section-conflict: Fixup gdth + section annotations. +* Mon Sep 29 2008 aj@suse.de +- Silence /etc/rpm/macros.kernel-source via rpmlintrc. +* Mon Sep 29 2008 jbeulich@novell.com +- Enable Solarflare driver link and resource driver patches. +- Update x86 config files. +* Mon Sep 29 2008 agruen@suse.de +- rpm/kernel-source.spc.in: Try to get rid of a hack that makes + uname -r pretend in build environments that the kernel from + the installed kernel-source package is the running kernel: + packages assuming this are completely broken ans should really + be fixed. +* Mon Sep 29 2008 agruen@suse.de +- rpm/kernel-source.spec.in: Prepare for the upcoming introduction + of kernel-source-rt (and kernel-syms-rt) for producing KMPs for + real-time kernels. +- rpm/install-configs: Remove; this script didn't improve things. +* Sun Sep 28 2008 aj@suse.de +- rpm/kernel-source.rpmlintrc: New file to silence warnings about + zero size files +- rpm/kernel-source.spec.in: Install it. +- rpm/kernel-source.spec.in: Make /etc/rpm/macros.kernel-source + a config file to silence rpmlint. +* Sun Sep 28 2008 jdelvare@suse.de +- supported.conf: Update the list of i2c bus drivers. + - i2c-i810, i2c-prosavage and i2c-savage4 are gone. + - i2c-isch and i2c-nforce2-s4985 are new, mark as supported. +* Sun Sep 28 2008 aj@suse.de +- rpm/kernel-source.spec.in: Do not package .gitignore files. +* Sun Sep 28 2008 agruen@suse.de +- Fix CONFIG_MODULES=n case. +- config.conf: Some cleanups. +* Sat Sep 27 2008 agruen@suse.de +- Split the binary kernel packages into three parts: + + kernel-$flavor-base: very reduced hardware support, intended + to be used in virtual machine images + + kernel-$flavor: extends the base package; contains all kernel + modules we can support + + kernel-$flavor-extra: all other kernel modules which may be + useful, but which we cannot support. +* Sat Sep 27 2008 agruen@suse.de +- Hardlink duplicate files automatically: It doesn't save much, + but it keeps rpmlint from breaking the package build. +* Sat Sep 27 2008 agruen@suse.de +- Add consistency check: supported modules must not depend on + unsupported ones ... and guess what, there was a large number of + such modules. Fix this by adding all the dependent modules to + supported.conf. +* Sat Sep 27 2008 knikanth@suse.de +- patches.suse/dm-barrier-single-device: Implement barrier + support for single device DM devices (FATE#304489). +* Sat Sep 27 2008 jeffm@suse.de +- scripts/tar-up_and_run_mbuild.sh: Added -xen flavor to default + mbuild spec list. +* Sat Sep 27 2008 jeffm@suse.de +- patches.xen/xen-e1000e_Export_set_memory_ro-rw: Export + set_memory_ro() and set_memory_rw() calls for xen. (bnc#425480). +* Sat Sep 27 2008 kkeil@suse.de +- patches.suse/e1000e_mmap_range_chk:check ranges in pci_mmap + * updated version with better reporting (bnc#425480) +* Fri Sep 26 2008 kkeil@suse.de +- patches to track down and fix the e1000e NVM corruption + (bnc#425480) +- patches.suse/e1000e_allow_bad_checksum: e1000e: allow bad + checksum +- patches.suse/e1000e_call_dump_eeprom: e1000e: dump eeprom to + dmesg for ich8/9 +- patches.suse/e1000e_debug_contention_on_NVM_SWFLAG: e1000e: + debug contention on NVM SWFLAG +- patches.suse/e1000e_do_not_ever_sleep_in_interrupt_context: + e1000e: do not ever sleep in interrupt context +- patches.suse/e1000e_drop_stats_lock: e1000e: drop stats lock +- patches.suse/e1000e_Export_set_memory_ro-rw: Export + set_memory_ro() and set_memory_rw() calls +- patches.suse/e1000e_fix_lockdep_issues: e1000e: fix lockdep + issues +- patches.suse/e1000e_mmap_range_chk: check ranges in pci_mmap +- patches.suse/e1000e_reset_swflag_after_resetting_hardware: + e1000e: reset swflag after resetting hardware +- patches.suse/e1000e_update_version: update version +- patches.suse/e1000e_use_set_memory_ro-rw_to_protect_flash_memory: + e1000e: Use set_memory_ro()/set_memory_rw() to protect flash + memory +- cleanup old not longer used patches + * patches.drivers/e1000-7.6.5-napi-tail.patch + * patches.drivers/e1000-7.6.9.2 + * patches.drivers/e1000-7.6.9.2-napi +* Fri Sep 26 2008 kkeil@suse.de +- Enable CONFIG_SGI_IOC4=m in x86_64 (bnc#430275) +* Fri Sep 26 2008 jeffm@suse.de +- patches.arch/acpi-export-hotplug_execute: acpi: export + acpi_os_hotplug_execute. +* Fri Sep 26 2008 jeffm@suse.de +- patches.xen/xen-rwlocks-enable-interrupts: add missing + __raw_{read,write}_lock_flags to xen's asm/spinlock.h. +* Fri Sep 26 2008 jeffm@suse.de +- patches.arch/acpi-bay-remove-from-makefile: acpi: remove bay.c + from makefile. +* Fri Sep 26 2008 jeffm@suse.de +- rpm/kernel-binary.spec.in: Disabled sparse checking. Too many + false positives. +* Fri Sep 26 2008 trenn@suse.de + No functional change: +- patches.arch/acpi_thermal_passive_blacklist.patch: Avoid + critical temp shutdowns on specific ThinkPad T4x(p) and R40 + (https://bugzilla.novell.com/show_bug.cgi?id=333043). + Dock bug fixes (kacpid runs amok on Dells after suspend): +- patches.arch/acpi-dock-avoid-check-_STA-method.patch: avoid + check _STA method (fate#304731,bnc#401740). +- patches.arch/acpi-dock-fix-eject-request-process.patch: fix + eject request process (fate#304731,bnc#401740). + More Dock improvements, unrelated to above fixes: +- patches.arch/acpi-bay-remove-useless-code.patch: remove useless + code (fate#304731,bnc#401740). +- patches.arch/acpi-dock-Fix-duplicate-notification-handler-register.patch: + Fix duplicate notification handler register + (fate#304731,bnc#401740). +- patches.arch/acpi-dock-_LCK-support-for-dock.patch: add _LCK + support for dock (fate#304731,bnc#401740). +- patches.arch/acpi-dock-fix-for-bay-in-a-dock-station.patch: + fix for bay in a dock station (fate#304731,bnc#401740). +- patches.arch/acpi-dock-fix-hotplug-race.patch: fix hotplug race + (fate#304731,bnc#401740). +- patches.arch/acpi-dock-introduce-.uevent-for-devices-in-dock.patch: + introduce .uevent for devices in dock (fate#304731,bnc#401740). +- patches.arch/acpi-libata-hotplug-to-align-with-dock-driver.patch: + libata hotplug to align with dock driver + (fate#304731,bnc#401740). +- patches.arch/acpi-dock-makeing-dock-driver-supports-bay-and-battery-hotplug.patch: + makeing dock driver supports bay and battery hotplug + (fate#304731,bnc#401740). +- patches.arch/acpi-dock-add-type-sysfs-file-for-dock.patch: + add 'type' sysfs file for dock (fate#304731,bnc#401740). +- patches.fixes/acpi_use_acpi_exception.patch: ACPI dock/bay: + Use ACPI_EXCEPTION instead of printk(KERN_ERR. +* Fri Sep 26 2008 jeffm@suse.de +- Update config files: NFS_SWAP=y +* Fri Sep 26 2008 ptesarik@suse.cz +- patches.suse/rwlocks-enable-interrupts: Allow rwlocks to + re-enable interrupts (bnc#387784). +- patches.arch/ia64-rwlocks-enable-interrupts: ia64: re-enable + interrupts when waiting for a rwlock (bnc#387784). +* Fri Sep 26 2008 sjayaraman@suse.de +- Add Swap over NFS patchset. +- Adjust patches.xen/xen3-auto-common.diff to avoid conflict on skbuff.h + as both xen and swap-over-nfs want to add some bits to the skbuff structure. +- patches.suse/SoN-01-mm-gfp-to-alloc_flags.patch: mm: + gfp_to_alloc_flags() (FATE#303834). +- patches.suse/SoN-02-mm-setup_per_zone_pages_min.patch: mm: + serialize access to min_free_kbytes (FATE#303834). +- patches.suse/SoN-03-doc.patch: swap over network documentation + (FATE#303834). +- patches.suse/SoN-04-mm-gfp-to-alloc_flags-expose.patch: mm: + expose gfp_to_alloc_flags() (FATE#303834). +- patches.suse/SoN-05-page_alloc-reserve.patch: mm: tag reseve + pages (FATE#303834). +- patches.suse/SoN-06-reserve-slub.patch: mm: slb: add knowledge + of reserve pages (FATE#303834). +- patches.suse/SoN-07-mm-kmem_estimate_pages.patch: mm: + kmem_alloc_estimate() (FATE#303834). +- patches.suse/SoN-08-mm-PF_MEMALLOC-softirq.patch: mm: allow + PF_MEMALLOC from softirq context (FATE#303834). +- patches.suse/SoN-09-mm-page_alloc-emerg.patch: mm: emergency + pool (FATE#303834). +- patches.suse/SoN-10-global-ALLOC_NO_WATERMARKS.patch: mm: + system wide ALLOC_NO_WATERMARK (FATE#303834). +- patches.suse/SoN-11-mm-page_alloc-GFP_EMERGENCY.patch: mm: + __GFP_MEMALLOC (FATE#303834). +- patches.suse/SoN-12-mm-reserve.patch: mm: memory reserve + management (FATE#303834). +- patches.suse/SoN-13-mm-selinux-emergency.patch: selinux: + tag avc cache alloc as non-critical (FATE#303834). +- patches.suse/SoN-14-net-backlog.patch: net: wrap + sk->sk_backlog_rcv() (FATE#303834). +- patches.suse/SoN-15-net-ps_rx.patch: net: packet split receive + api (FATE#303834). +- patches.suse/SoN-16-net-sk_allocation.patch: net: + sk_allocation() - concentrate socket related allocations + (FATE#303834). +- patches.suse/SoN-17-netvm-reserve.patch: netvm: network reserve + infrastructure (FATE#303834). +- patches.suse/SoN-18-netvm-reserve-inet.patch: netvm: INET + reserves. (FATE#303834). +- patches.suse/SoN-19-netvm-skbuff-reserve.patch: netvm: hook + skb allocation to reserves (FATE#303834). +- patches.suse/SoN-20-netvm-sk_filter.patch: netvm: filter + emergency skbs. (FATE#303834). +- patches.suse/SoN-21-netvm-tcp-deadlock.patch: netvm: prevent + a stream specific deadlock (FATE#303834). +- patches.suse/SoN-22-emergency-nf_queue.patch: netfilter: + NF_QUEUE vs emergency skbs (FATE#303834). +- patches.suse/SoN-23-netvm.patch: netvm: skb processing + (FATE#303834). +- patches.suse/SoN-24-mm-swapfile.patch: mm: add support for + non block device backed swap files (FATE#303834). +- patches.suse/SoN-25-mm-page_file_methods.patch: mm: methods + for teaching filesystems about PG_swapcache pages (FATE#303834). +- patches.suse/SoN-26-nfs-swapcache.patch: nfs: teach the NFS + client how to treat PG_swapcache pages (FATE#303834). +- patches.suse/SoN-27-nfs-swapper.patch: nfs: disable data cache + revalidation for swapfiles (FATE#303834). +- patches.suse/SoN-28-nfs-swap_ops.patch: nfs: enable swap on NFS + (FATE#303834). +- patches.suse/SoN-29-nfs-alloc-recursions.patch: nfs: fix various + memory recursions possible with swap over NFS. (FATE#303834). +- patches.xen/xen3-auto-common.diff: xen3 common. +* Fri Sep 26 2008 ptesarik@suse.cz +- split patches.arch/s390-01-01-self-ptrace-v3.patch to make it + more obvious that the patch is not constrained to s390. + The new series is: + patches.suse/self-ptrace.patch: the generic pieces + patches.arch/x86-self-ptrace.patch: implementation for x86 + patches.arch/s390-01-01-self-ptrace-v3.patch: dtto for s390 +* Thu Sep 25 2008 jbeulich@novell.com +- Update Xen patches to 2.6.27-rc7 and c/s 676. +* Thu Sep 25 2008 olh@suse.de +- add patches.arch/ppc64-rpanote-relocate-firmware.patch + update RPA note for firmware relocation (bnc#427960 - LTC48297) +* Wed Sep 24 2008 jblunck@suse.de + This adds some tracepoint instrumentation taken from the LTTng patch + series. Tracepoints are enabled for kernel-debug and kernel-trace only. I + disabled ftrace for all flavors except kernel-debug and kernel-trace as well. +- Update config files. +- rpm/kernel-source.spec.in,kernel-binary.spec.in, config.conf: Add trace + flavor +- patches.fixes/ia64-sparse-fixes.diff: ia64-kvm: fix sparse + warnings. +- patches.xen/xen3-fixup-common: rediff +- patches.xen/xen3-auto-common.diff: rediff +- patches.xen/xen3-patch-2.6.21: rediff +- patches.xen/xen3-patch-2.6.26: rediff +- patches.trace/rcu-read-sched.patch +- patches.trace/markers-use-rcu-read-lock-sched.patch +- patches.trace/tracepoints.patch +- patches.trace/tracepoints-use-table-size-macro.patch +- patches.trace/tracepoints-documentation.patch +- patches.trace/tracepoints-tracepoint-synchronize-unregister.patch +- patches.trace/tracepoints-documentation-fix-teardown.patch +- patches.trace/tracepoints-samples.patch +- patches.trace/tracepoints-samples-fix-teardown.patch +- patches.trace/lttng-instrumentation-irq.patch +- patches.trace/lttng-instrumentation-scheduler.patch +- patches.trace/lttng-instrumentation-timer.patch +- patches.trace/lttng-instrumentation-kernel.patch +- patches.trace/lttng-instrumentation-filemap.patch +- patches.trace/lttng-instrumentation-swap.patch +- patches.trace/lttng-instrumentation-memory.patch +- patches.trace/lttng-instrumentation-page_alloc.patch +- patches.trace/lttng-instrumentation-hugetlb.patch +- patches.trace/lttng-instrumentation-net.patch +- patches.trace/lttng-instrumentation-ipv4.patch +- patches.trace/lttng-instrumentation-ipv6.patch +- patches.trace/lttng-instrumentation-socket.patch +- patches.trace/lttng-instrumentation-fs.patch +- patches.trace/lttng-instrumentation-ipc.patch +- patches.trace/ftrace-port-to-tracepoints.patch +- patches.trace/ftrace-framepointer.diff +* Tue Sep 23 2008 jjolly@suse.de +- patches.arch/s390-01-03-cmm2-v2.patch: kernel (new function): + Collaborative Memory Management Stage II (bnc#417244) +- patches.xen/xen3-auto-common.diff: Modified patch to allow for + the new patch +* Tue Sep 23 2008 jeffm@suse.de +- rpm/kernel-binary.spec.in: Enable sparse checking and section + mismatch checking. +* Tue Sep 23 2008 jeffm@suse.de +- patches.kernel.org/arch-include-asm-fixes: kbuild: Properly + handle arch/$arch/include/asm (bnc#427473). +* Mon Sep 22 2008 jeffm@suse.de +- patches.fixes/ext2-avoid-printk-flood-with-dir-corruption: + ext2: Avoid printk floods in the face of directory corruption + (bnc#427244 CVE-2008-3528). +- patches.fixes/ext3-avoid-printk-flood-with-dir-corruption: + ext3: Avoid printk floods in the face of directory corruption + (bnc#427244 CVE-2008-3528). +* Mon Sep 22 2008 jeffm@suse.de +- Update to 2.6.27-rc7. + - Eliminated 2 patches. + - patches.arch/s390-01-04-fcpperf-4.patch: Fixed up context. +* Mon Sep 22 2008 trenn@suse.de + Workaround for ThinkPad brightness switching: +- patches.arch/acpi_video_thinkpad_exclude_IGD_devices.patch: + Do not use video backlight switching for Lenovo ThinkPads. + Commented out for now, possibly to be included later +- patches.drivers/cpufreq_add_cpu_number_paramater_1.patch: + cpufreq: Add a cpu parameter to __cpufreq_driver_getavg().. +- patches.drivers/cpufreq_add_idle_microaccounting_6.patch: + cpufreq,ondemand: Use get_cpu_idle_time_us() to get + micro-accounted idle information. +- patches.drivers/cpufreq_change_load_calculation_2.patch: + cpufreq, ondemand: Change the load calculation, optimizing + for dependent cpus. +- patches.drivers/cpufreq_changes_to_get_cpu_idle_us_5.patch: + export get_cpu_idle_time_us() . +- patches.drivers/cpufreq_get_cpu_idle_time_changes_3.patch: + cpufreq,ondemand: Prepare changes for doing micro-accounting. +- patches.drivers/cpufreq_parameterize_down_differential_4.patch: + cpufreq, ondemand: Use a parameter for down differential. + Added CONFIG_PCIEASPM for rt, xen, powerpc and IA64 to be more + consistent across different kernel flavors as suggested on the + kernel list: +- Update config files. +* Mon Sep 22 2008 hare@suse.de +- patches.drivers/open-fcoe-libfc: Fix build error on IA64. +- patches.fixes/scsi-terminate-target-reset: Target reset hangs + (bnc#427267). +- supported.conf: Update to include supported SCSI adapters. +* Fri Sep 19 2008 jbeulich@novell.com +- patches.suse/no-frame-pointer-select: Re-enable after removing FTRACE + related change. +- Update x86 non-debug config files: Turn off FRAME_POINTER and FTRACE. +* Fri Sep 19 2008 neilb@suse.de +- patches.fixes/md-Allow-metadata_version-to-be-updated-for-externa.patch: + md: Allow metadata_version to be updated for externally managed + metadata. (FATE#304218). +- patches.fixes/md-Don-t-try-to-set-an-array-to-read-auto-if-it-i.patch: + md: Don't try to set an array to 'read-auto' if it is already + in that state. (FATE#304218). +* Thu Sep 18 2008 jbeulich@novell.com +- patches.suse/no-frame-pointer-select: Disable. +- Re-enable CONFIG_FRAME_POINTER in x86 config files. +* Thu Sep 18 2008 jbeulich@novell.com +- Update i386 and x86-64 config files (disable CONFIG_FRAME_POINTER in + non-debug configs). +- patches.suse/stack-unwind: Add missing put_cpu()-s for x86-64. +- patches.suse/no-frame-pointer-select: Fix stack unwinder Kconfig + (bnc#402518). +* Thu Sep 18 2008 hare@suse.de +- Update config files. +- patches.drivers/open-fcoe-driver: fcoe: Fibre Channel over + Ethernet driver (FATE#303913). +- patches.drivers/open-fcoe-libfc: libfc: a modular software + Fibre Channel implementation (FATE#303913). +- patches.drivers/open-fcoe-header-files: FC protocol definition + header files (FATE#303913). +- patches.drivers/open-fcoe-dcb-support: FCoE: Add DCB support + (FATE#303913). +- patches.drivers/ixgbe-fcoe-bugfixes: ixgbe: Bugfixes for FCoE. +- patches.fixes/vlan-gso-size-fix: vlan: device not reading gso + max size of parent. (FATE#303913). +- patches.fixes/pkt_action-skbedit: pkt_action: add new action + skbedit. +- patches.fixes/pkt_sched_multiq_support: pkt_sched: Add + multiqueue scheduler support (FATE#303913). +- supported.conf: Update to include FCoE and device_handler + modules +* Wed Sep 17 2008 jbeulich@novell.com +- supported.conf: adjust name of ide-cd (is now ide-cd_mod). +* Wed Sep 17 2008 hare@suse.de +- patches.drivers/qla2xxx-defer-risc-interrupt-enablement: + qla2xxx: Defer enablement of RISC interrupts until ISP + initialization completes (FATE#304113). +- patches.drivers/qla2xxx-8.02.01-k8-update: Update qla2xxx to + 8.02.01-k8 (FATE#304113). +* Wed Sep 17 2008 hare@suse.de +- patches.fixes/scsi-retry-hardware-error: make scsi_check_sense + HARDWARE_ERROR return ADD_TO_MLQUEUE on retry (FATE#304042) +* Tue Sep 16 2008 olh@suse.de +- disable CONFIG_SPARSEMEM_VMEMMAP on ppc64 to allow memory remove + (bnc#417537) +* Mon Sep 15 2008 jkosina@suse.de +- Update config files (build elousb driver as module) +- patches.drivers/elousb.patch: Elo USB touchscreen driver + (FATE#304972). +* Mon Sep 15 2008 hare@suse.de +- patches.fixes/dm-mpath-abort-queue: Abort queued requests for + multipath (FATE#304151). * Mon Sep 15 2008 hare@suse.de - Update config files: Disable CONFIG_OCFS2_COMPAT_JBD * Mon Sep 15 2008 hare@suse.de ++++++ kernel-trace.spec ++++++ ++++ 23735 lines (skipped) ++++++ kernel-vanilla.spec ++++++ --- /var/tmp/diff_new_pack.o25057/_old 2008-09-29 18:09:45.000000000 +0200 +++ /var/tmp/diff_new_pack.o25057/_new 2008-09-29 18:09:45.000000000 +0200 @@ -30,7 +30,6 @@ %define build_xen 0 %define build_um 0 %define build_vanilla 0 -%define build_nomodules 0 %if %{build_flavor} == "kdump" %define build_kdump 1 %endif @@ -43,19 +42,18 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%if %{build_flavor} == "ps3" -%define build_nomodules 1 -%endif Name: kernel-vanilla Summary: The Standard Kernel - without any SUSE patches Version: 2.6.27 -Release: 7 +Release: 8 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ AutoReqProv: on -BuildRequires: coreutils module-init-tools +BuildRequires: coreutils module-init-tools sparse +BuildRequires: fdupes +Requires: kernel-vanilla-base = %version-%release Requires(pre): coreutils awk Requires(post): module-init-tools # This Requires is wrong, because the post/postun scripts have a @@ -68,6 +66,9 @@ Requires(post): perl-Bootloader Requires(post): mkinitrd Recommends: kerneloops +%if ! %sles_version +Recommends: kernel-vanilla-extra +%endif #!BuildIgnore: perl-Bootloader mkinitrd %if ! 0%{?opensuse_bs} BuildRequires: kernel-dummy @@ -148,7 +149,6 @@ Source32: config-subst Source33: check-for-config-changes Source34: check-supported-list -Source35: install-configs Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where @@ -168,6 +168,7 @@ Source109: patches.kernel.org.tar.bz2 Source110: patches.apparmor.tar.bz2 Source111: patches.rt.tar.bz2 +Source112: patches.trace.tar.bz2 Source120: kabi.tar.bz2 %define my_builddir %_builddir/%{name}-%{version} BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -194,8 +195,21 @@ Obsoletes: rt2x00-kmp Obsoletes: rfswitch-kmp Obsoletes: uvcvideo-kmp -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks,install-configs}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks}) %define symbols %(set -- kernel-vanilla vanilla $(case vanilla in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) +%define subarch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/vanilla$') +# Define some CONFIG variables as rpm macros as well. (rpm cannot handle +# defining them all at once.) +%define config_vars CONFIG_MODULES +%{expand:%(eval "$(test -n "%subarch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%subarch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)} +%if %build_vanilla || %CONFIG_MODULES != "y" +%define split_packages 0 +%else +%define split_packages 1 +%endif +# Build with bash instead of sh as the shell: this turns on bash +# extensions like <(...). +%define _buildshell /bin/bash # Provide the exported symbols as "ksym(symbol) = hash" %define __find_provides %_sourcedir/find-provides %name # Will modules not listed in supported.conf abort the kernel build (0/1)? @@ -210,7 +224,7 @@ -Source Timestamp: 2008-09-15 10:58:05 +0200 +Source Timestamp: 2008-09-29 15:31:19 +0200 %prep if ! [ -e %_sourcedir/linux-2.6.26.tar.bz2 ]; then @@ -220,16 +234,21 @@ fi echo "Architecture symbol(s):" %symbols # Unpack all sources and patches -%setup -q -c -T -a 0 -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109 -a 110 -a 111 -a 120 -# Generate the list of supported modules -( %_sourcedir/guards %symbols < %_sourcedir/supported.conf +%setup -q -c -T -a 0 -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109 -a 110 -a 111 -a 112 -a 120 +supported_conf() { + %_sourcedir/guards %symbols $* < %_sourcedir/supported.conf | sort -u +} +# Generate the list of modules to be marked as supported +( supported_conf base for how in external; do - ( %_sourcedir/guards %symbols < %_sourcedir/supported.conf - %_sourcedir/guards %symbols < %_sourcedir/supported.conf - %_sourcedir/guards %symbols $how < %_sourcedir/supported.conf \ - ) | sort | uniq -u | sed -e 's:$: '"$how"':' + comm -2 -3 <(supported_conf base $how) <(supported_conf base) \ + | sed -e 's:$: '"$how"':' done -) | sed -e 's,.*/,,' | sort > linux-2.6.26/Module.supported +) | sed -e 's,.*/,,' -e 's,\.ko$,,' > linux-2.6.26/Module.supported +# Create grep pattern file for the modules to end up in the base package +comm -2 -3 <(supported_conf base) <(supported_conf) \ + | sed -e 's:.*/::' -e 's:^:\\/:' -e 's:$:\.ko$:' \ + > %my_builddir/grep-for-base-modules cd linux-2.6.26 # Find out for which architecture to build. We do this here, and use the # result in the %build and %install sections. @@ -237,10 +256,7 @@ # On architectures with a bi-arch or cross compiler, we can compile for # an architecture different from %arch. The location of the config file # tells us for which architecture to compile. -set -- $( - for config in $(%_sourcedir/guards %symbols < %_sourcedir/config.conf) ; do - [ ${config#*/} = vanilla ] && echo $config - done) +set -- %subarch_flavor if [ $# -ne 1 ]; then echo "$# config files found for this spec file (but one needed)" >&2 exit 1 @@ -270,9 +286,9 @@ if [ -f %_sourcedir/localversion ] ; then cat %_sourcedir/localversion > localversion fi -%_sourcedir/install-configs %_sourcedir .. $RELEASE -config=arch/$subarch/defconfig.vanilla -cat $config \ +cat ../config/%subarch_flavor \ +| %_sourcedir/config-subst CONFIG_LOCALVERSION '"'-$RELEASE-vanilla'"' \ +| %_sourcedir/config-subst CONFIG_SUSE_KERNEL y \ %if 0%{?__debug_package:1} | %_sourcedir/config-subst CONFIG_DEBUG_INFO y \ %endif @@ -292,13 +308,14 @@ EOF %endif cat >> ../.rpm-defs <<EOF -KERNELRELEASE=2.6.27-rc6-$RELEASE-vanilla +KERNELRELEASE=2.6.27-rc7-$RELEASE-vanilla EOF %if 0%{?__debug_package:1} cat >> ../.rpm-defs <<EOF MAKE_ARGS="\$MAKE_ARGS CONFIG_DEBUG_INFO=y" EOF %endif +echo CONFIG_MODULES=%CONFIG_MODULES >> ../.rpm-defs %build source .rpm-defs @@ -333,7 +350,7 @@ export KBUILD_SYMTYPES=1 EOF source .kernel-binary.spec.buildenv -make %{?jobs:-j%jobs} all $MAKE_ARGS +make %{?jobs:-j%jobs} all $MAKE_ARGS CONFIG_DEBUG_SECTION_MISMATCH=y %install source .rpm-defs @@ -428,13 +445,16 @@ sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:vanilla:g" \ - %_sourcedir/pre.sh > ../pre.sh -( cat %_sourcedir/functions.sh + %_sourcedir/pre.sh > ../pre-base.sh +for sub in '-base' '' '-extra'; do + ( cat %_sourcedir/functions.sh sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:vanilla:g" \ + -e "s:@SUBPACKAGE@:kernel-vanilla$sub:g" \ %_sourcedir/post.sh -) > ../post.sh + ) > ../post$sub.sh +done ( cat %_sourcedir/functions.sh sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ @@ -447,18 +467,16 @@ ln -s $image$suffix %buildroot/boot/$image$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix cp .config %buildroot/boot/config-$KERNELRELEASE -%if ! %build_nomodules +gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz +if [ $CONFIG_MODULES = y ]; then make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot -%endif -if ! %_sourcedir/check-supported-list \ + if ! %_sourcedir/check-supported-list \ %_sourcedir %buildroot/lib/modules/$KERNELRELEASE; then %if %supported_modules_check exit 1 %endif echo "Consistency check error: please update supported.conf." -fi -gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz -if grep -q '^CONFIG_MODULES=y$' .config; then + fi # Preserve exports from previous kernels when possible. old_symsets=%my_builddir/kabi/$SUBARCH/symsets-vanilla.tar.gz [ -e $old_symsets ] || old_symsets= @@ -472,42 +490,41 @@ %buildroot/boot/symsets-$KERNELRELEASE.tar.gz \ $old_symsets || [ -n "$ignore_kabi_changes" -o %tolerate_kabi_changes -ge 8 ] -fi -# Also put the resulting file in $obj_dir/$SUBARCH/vanilla -# so that kernel-source + kernel-vanilla is sufficient for building -# modules that have modversions as well. -obj_dir=usr/src/linux-${KERNELRELEASE%%-vanilla}-obj -mkdir -p %buildroot/$obj_dir/$SUBARCH/vanilla -cp Module.symvers %buildroot/$obj_dir/$SUBARCH/vanilla -# Table of types used in exported symbols (for modversion debugging). -%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-$KERNELRELEASE -if [ -s %buildroot/boot/symtypes-$KERNELRELEASE ]; then + # Also put the resulting file in $obj_dir/$SUBARCH/vanilla + # so that kernel-source + kernel-vanilla is sufficient for building + # modules that have modversions as well. + obj_dir=usr/src/linux-${KERNELRELEASE%%-vanilla}-obj + mkdir -p %buildroot/$obj_dir/$SUBARCH/vanilla + cp Module.symvers %buildroot/$obj_dir/$SUBARCH/vanilla + # Table of types used in exported symbols (for modversion debugging). + %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-$KERNELRELEASE + if [ -s %buildroot/boot/symtypes-$KERNELRELEASE ]; then gzip -9 %buildroot/boot/symtypes-$KERNELRELEASE -else + else rm -f %buildroot/boot/symtypes-$KERNELRELEASE -fi -# Some architecture's $(uname -m) output is different from the ARCH -# parameter that needs to be passed to kbuild. Create symlinks from -# $(uname -m) to the ARCH directory. -[ -e %buildroot/$obj_dir/%_target_cpu ] \ + fi + # Some architecture's $(uname -m) output is different from the ARCH + # parameter that needs to be passed to kbuild. Create symlinks from + # $(uname -m) to the ARCH directory. + [ -e %buildroot/$obj_dir/%_target_cpu ] \ || ln -sf $SUBARCH %buildroot/$obj_dir/%_target_cpu %ifarch ppc ppc64 -[ -e %buildroot/$obj_dir/ppc ] \ + [ -e %buildroot/$obj_dir/ppc ] \ || ln -s $SUBARCH %buildroot/$obj_dir/ppc -[ -e %buildroot/$obj_dir/ppc64 ] \ + [ -e %buildroot/$obj_dir/ppc64 ] \ || ln -s $SUBARCH %buildroot/$obj_dir/ppc64 %endif -# Check for kABI changes -KABI=0 -if [ -e %my_builddir/kabi/$SUBARCH/symvers-vanilla ]; then + # Check for kABI changes + KABI=0 + if [ -e %my_builddir/kabi/$SUBARCH/symvers-vanilla ]; then %_sourcedir/kabi-checks \ %my_builddir/kabi/$SUBARCH/symvers-vanilla \ Module.symvers \ %my_builddir/kabi/commonsyms \ %my_builddir/kabi/usedsyms \ || KABI=$? -fi -if [ $KABI -gt %tolerate_kabi_changes ]; then + fi + if [ $KABI -gt %tolerate_kabi_changes ]; then echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ "of %tolerate_kabi_changes. Please try to avoid the kABI changes." if [ ! -e %my_builddir/kabi/$SUBARCH/ignore-vanilla -a \ @@ -519,68 +536,194 @@ fi # Indicate the ABI badness in build result emails. echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag -fi -if [ $KABI -ge 8 ]; then + fi + if [ $KABI -ge 8 ]; then echo "To find out which types have changed relative to the reference" \ "symbols, diff the symtypes.gz files of the reference kernel" \ "against the symtypes.gz file from this build." -fi -# We were building in %my_builddir/linux-2.6.26, but the sources will -# later be installed in /usr/src/linux-2.6.26-%source_rel. Fix up the -# build symlink. -# need to fake modules directory to satisfy scripts -%if %build_nomodules -mkdir -p %buildroot/lib/modules/$KERNELRELEASE/ -%endif -rm -f %buildroot/lib/modules/$KERNELRELEASE/{source,build} -ln -s /usr/src/linux-${KERNELRELEASE%%-vanilla} \ + fi + # We were building in %my_builddir/linux-2.6.26, but the sources will + # later be installed in /usr/src/linux-2.6.26-%source_rel. Fix up the + # build symlink. + rm -f %buildroot/lib/modules/$KERNELRELEASE/{source,build} + ln -s /usr/src/linux-${KERNELRELEASE%%-vanilla} \ %buildroot/lib/modules/$KERNELRELEASE/source -ln -s /$obj_dir/$SUBARCH/vanilla \ + ln -s /$obj_dir/$SUBARCH/vanilla \ %buildroot/lib/modules/$KERNELRELEASE/build -# Abort if there are any undefined symbols -msg="$(/sbin/depmod -F %buildroot/boot/System.map-$KERNELRELEASE \ + # Abort if there are any undefined symbols + msg="$(/sbin/depmod -F %buildroot/boot/System.map-$KERNELRELEASE \ -b %buildroot -ae $KERNELRELEASE 2>&1)" -if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then + if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then exit 1 -fi -# Create a dummy initrd with roughly the size the real one will have. -# That way, YaST will know that this package requires some additional -# space in /boot. -dd if=/dev/zero of=%buildroot/boot/initrd-$KERNELRELEASE \ + fi + # Create a dummy initrd with roughly the size the real one will have. + # That way, YaST will know that this package requires some additional + # space in /boot. + dd if=/dev/zero of=%buildroot/boot/initrd-$KERNELRELEASE \ bs=1024 seek=2047 count=1 -# Collect the file list. +%if %split_packages + # Generate the lists of supported and unsupported modules. + ( cd %buildroot + for module in $(find lib/modules/$KERNELRELEASE -type f -name '*.ko'); do + case "$(/sbin/modinfo -F supported $module)" in + (yes|external) + echo "/$module" >> %my_builddir/supported-modules + ;; + (*) + echo "/$module" >> %my_builddir/unsupported-modules + ;; + esac + done + ) + add_dependent_modules() { + local modules_dep=$1 + xargs make -rRs -f <(echo -e '%:\n\t@echo $@' ; cat $modules_dep) + } + modules_dep=%buildroot/lib/modules/$KERNELRELEASE/modules.dep + # Make sure that no supported modules depend on any unsupported modules. + dependent_unsupported_modules=$( + comm -3 <(sort %my_builddir/supported-modules) \ + <(cat %my_builddir/supported-modules \ + | add_dependent_modules $modules_dep \ + | sort)) + if [ -n "$dependent_unsupported_modules" ]; then + echo "The following unsupported modules are used by supported modules:" + echo "$dependent_unsupported_modules" + echo "Please fix supported.conf." + exit 1 + fi + # Compute the list of base modules: modules that core modules depend on + # implicitly are also core modules. + grep -f %my_builddir/grep-for-base-modules %my_builddir/supported-modules \ + | add_dependent_modules $modules_dep > %my_builddir/base-modules + # All supported modules which are not core modules belong in kernel-kernel-vanilla. + comm -3 <(sort %my_builddir/supported-modules) \ + <(sort %my_builddir/base-modules) \ + > %my_builddir/main-modules +%else + ( cd %buildroot + find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' + ) > %my_builddir/base-modules +%endif + # Set up some module aliases + install -d -m 755 %buildroot/etc/modprobe.d/ + install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ +fi +add_dirs_to_filelist() { + local filelist + filelist=$(cat) + echo "$filelist" + # Below, we do this: + # - remove filelist macros + # - remove last pathname component + # - generate all parents and make the list unique + # - skip directories owned be other packages + # - add the %dir prefix (double-escaped for find and rpm) + echo "$filelist" \ + | sed -re 's:%%%%[a-z]+(\([^)]+\))? ?::g' \ + | sed -re 's:/[^/]+$::' \ + | sed -nre ':a; p; s:/[^/]+$::; ta' \ + | sort -u \ + | sed -r -e '\:^(|/boot|/etc|/lib(/modules|/firmware)?|/usr(/src)?)$:d' \ + | sed -e 's:^:%%%%dir :' +} +# Collect the file lists. ( cd %buildroot - echo "%%defattr(-, root, root)" + echo "%%%%defattr(-, root, root)" find boot \ - \( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \ + \( -type l -o -name 'initrd-*' \) -printf '%%%%%%%%ghost /%%p\n' -o \ -type f -printf '/%%p\n' + if [ $CONFIG_MODULES = y ]; then find lib/modules/$KERNELRELEASE \ - -type d -printf '%%%%dir /%%p\n' -o \ - -path '*/modules.*' -printf '%%%%ghost /%%p\n' -o \ - -printf '/%%p\n' - test -d lib/firmware && \ - find lib/firmware/$KERNELRELEASE \ - -type d -printf '%%%%dir /%%p\n' -o \ - -path '*/modules.*' -printf '%%%%ghost /%%p\n' -o \ + -type d -o \ + -path '*/modules.*' -printf '%%%%%%%%ghost /%%p\n' -o \ + -name '*.ko' -prune -o \ -printf '/%%p\n' + cat %my_builddir/base-modules + echo '%%%%config /etc/modprobe.d/module-renames' find $obj_dir \ - -type d -printf '%%%%dir /%%p\n' -o \ + -type d -o \ + -printf '/%%p\n' + fi + test -d lib/firmware/$KERNELRELEASE && \ + find lib/firmware/$KERNELRELEASE \ + -type d -o \ -printf '/%%p\n' - echo '%%dir /etc/modprobe.d/' - echo '%%config /etc/modprobe.d/module-renames' if [ -e .%_docdir/%name ]; then - echo "%%doc %_docdir/%name" + echo "%%%%doc %_docdir/%name" fi -) > %my_builddir/kernel.files -# Set up some module aliases -install -d -m 755 %buildroot/etc/modprobe.d/ -install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ - -%pre -f pre.sh +) | add_dirs_to_filelist > %my_builddir/kernel-base.files +%if %split_packages + ( echo "%%%%defattr(-, root, root)" + cat %my_builddir/main-modules + ) | add_dirs_to_filelist > %my_builddir/kernel-main.files + ( echo "%%%%defattr(-, root, root)" + cat %my_builddir/unsupported-modules + ) | add_dirs_to_filelist > %my_builddir/kernel-extra.files +%endif +# Hardlink duplicate files automatically (from package fdupes): It doesn't safe +# much, but it keeps rpmlint from breaking the package build. +%fdupes $RPM_BUILD_ROOT +cd %my_builddir # it helps if rpm can find the file lists ... %post -f post.sh %postun -f postun.sh +%if %split_packages -%files -f kernel.files +%files -f kernel-main.files +%else + +%files -f kernel-base.files +%endif +%package -n kernel-vanilla-base +Summary: The Standard Kernel - without any SUSE patches +License: GPL v2 only +Group: System/Kernel +Url: http://www.kernel.org/ +AutoReqProv: on +Requires(pre): coreutils awk +Requires(post): module-init-tools +Requires(post): perl-Bootloader +Requires(post): mkinitrd + +%description -n kernel-vanilla-base +The standard kernel - without any SUSE patches + + + +Source Timestamp: 2008-09-29 15:31:19 +0200 + +%pre -n kernel-vanilla-base -f pre-base.sh + +%post -n kernel-vanilla-base -f post-base.sh +%if %split_packages + +%files -n kernel-vanilla-base -f kernel-base.files +%endif + +%package -n kernel-vanilla-extra +Summary: The Standard Kernel - without any SUSE patches +License: GPL v2 only +Group: System/Kernel +Url: http://www.kernel.org/ +AutoReqProv: on +Requires: kernel-vanilla = %version-%release +Requires(pre): coreutils awk +Requires(post): module-init-tools +Requires(post): perl-Bootloader +Requires(post): mkinitrd + +%description -n kernel-vanilla-extra +The standard kernel - without any SUSE patches + + + +Source Timestamp: 2008-09-29 15:31:19 +0200 + +%post -n kernel-vanilla-extra -f post-extra.sh +%if %split_packages + +%files -n kernel-vanilla-extra -f kernel-extra.files +%endif ++++++ kernel-xen.spec ++++++ --- /var/tmp/diff_new_pack.o25057/_old 2008-09-29 18:09:45.000000000 +0200 +++ /var/tmp/diff_new_pack.o25057/_new 2008-09-29 18:09:45.000000000 +0200 @@ -30,7 +30,6 @@ %define build_xen 0 %define build_um 0 %define build_vanilla 0 -%define build_nomodules 0 %if %{build_flavor} == "kdump" %define build_kdump 1 %endif @@ -43,19 +42,18 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%if %{build_flavor} == "ps3" -%define build_nomodules 1 -%endif Name: kernel-xen Summary: The Xen Kernel Version: 2.6.27 -Release: 5 +Release: 6 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ AutoReqProv: on -BuildRequires: coreutils module-init-tools +BuildRequires: coreutils module-init-tools sparse +BuildRequires: fdupes +Requires: kernel-xen-base = %version-%release Requires(pre): coreutils awk Requires(post): module-init-tools # This Requires is wrong, because the post/postun scripts have a @@ -68,6 +66,9 @@ Requires(post): perl-Bootloader Requires(post): mkinitrd Recommends: kerneloops +%if ! %sles_version +Recommends: kernel-xen-extra +%endif #!BuildIgnore: perl-Bootloader mkinitrd %if ! 0%{?opensuse_bs} BuildRequires: kernel-dummy @@ -134,7 +135,6 @@ Source32: config-subst Source33: check-for-config-changes Source34: check-supported-list -Source35: install-configs Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where @@ -154,6 +154,7 @@ Source109: patches.kernel.org.tar.bz2 Source110: patches.apparmor.tar.bz2 Source111: patches.rt.tar.bz2 +Source112: patches.trace.tar.bz2 Source120: kabi.tar.bz2 %define my_builddir %_builddir/%{name}-%{version} BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -180,8 +181,21 @@ Obsoletes: rt2x00-kmp Obsoletes: rfswitch-kmp Obsoletes: uvcvideo-kmp -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks,install-configs}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks}) %define symbols %(set -- kernel-xen xen $(case xen in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) +%define subarch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/xen$') +# Define some CONFIG variables as rpm macros as well. (rpm cannot handle +# defining them all at once.) +%define config_vars CONFIG_MODULES +%{expand:%(eval "$(test -n "%subarch_flavor" && tar xfj %_sourcedir/config.tar.bz2 --to-stdout config/%subarch_flavor)"; for config in %config_vars; do echo "%%global $config ${!config:-n}"; done)} +%if %build_vanilla || %CONFIG_MODULES != "y" +%define split_packages 0 +%else +%define split_packages 1 +%endif +# Build with bash instead of sh as the shell: this turns on bash +# extensions like <(...). +%define _buildshell /bin/bash # Provide the exported symbols as "ksym(symbol) = hash" %define __find_provides %_sourcedir/find-provides %name # Will modules not listed in supported.conf abort the kernel build (0/1)? @@ -199,7 +213,7 @@ -Source Timestamp: 2008-09-15 10:58:05 +0200 +Source Timestamp: 2008-09-29 15:31:19 +0200 %prep if ! [ -e %_sourcedir/linux-2.6.26.tar.bz2 ]; then @@ -209,16 +223,21 @@ fi echo "Architecture symbol(s):" %symbols # Unpack all sources and patches -%setup -q -c -T -a 0 -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109 -a 110 -a 111 -a 120 -# Generate the list of supported modules -( %_sourcedir/guards %symbols < %_sourcedir/supported.conf +%setup -q -c -T -a 0 -a 100 -a 101 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109 -a 110 -a 111 -a 112 -a 120 +supported_conf() { + %_sourcedir/guards %symbols $* < %_sourcedir/supported.conf | sort -u +} +# Generate the list of modules to be marked as supported +( supported_conf base for how in external; do - ( %_sourcedir/guards %symbols < %_sourcedir/supported.conf - %_sourcedir/guards %symbols < %_sourcedir/supported.conf - %_sourcedir/guards %symbols $how < %_sourcedir/supported.conf \ - ) | sort | uniq -u | sed -e 's:$: '"$how"':' + comm -2 -3 <(supported_conf base $how) <(supported_conf base) \ + | sed -e 's:$: '"$how"':' done -) | sed -e 's,.*/,,' | sort > linux-2.6.26/Module.supported +) | sed -e 's,.*/,,' -e 's,\.ko$,,' > linux-2.6.26/Module.supported +# Create grep pattern file for the modules to end up in the base package +comm -2 -3 <(supported_conf base) <(supported_conf) \ + | sed -e 's:.*/::' -e 's:^:\\/:' -e 's:$:\.ko$:' \ + > %my_builddir/grep-for-base-modules cd linux-2.6.26 # Find out for which architecture to build. We do this here, and use the # result in the %build and %install sections. @@ -226,10 +245,7 @@ # On architectures with a bi-arch or cross compiler, we can compile for # an architecture different from %arch. The location of the config file # tells us for which architecture to compile. -set -- $( - for config in $(%_sourcedir/guards %symbols < %_sourcedir/config.conf) ; do - [ ${config#*/} = xen ] && echo $config - done) +set -- %subarch_flavor if [ $# -ne 1 ]; then echo "$# config files found for this spec file (but one needed)" >&2 exit 1 @@ -259,9 +275,9 @@ if [ -f %_sourcedir/localversion ] ; then cat %_sourcedir/localversion > localversion fi -%_sourcedir/install-configs %_sourcedir .. $RELEASE -config=arch/$subarch/defconfig.xen -cat $config \ +cat ../config/%subarch_flavor \ +| %_sourcedir/config-subst CONFIG_LOCALVERSION '"'-$RELEASE-xen'"' \ +| %_sourcedir/config-subst CONFIG_SUSE_KERNEL y \ %if 0%{?__debug_package:1} | %_sourcedir/config-subst CONFIG_DEBUG_INFO y \ %endif @@ -281,13 +297,14 @@ EOF %endif cat >> ../.rpm-defs <<EOF -KERNELRELEASE=2.6.27-rc6-$RELEASE-xen +KERNELRELEASE=2.6.27-rc7-$RELEASE-xen EOF %if 0%{?__debug_package:1} cat >> ../.rpm-defs <<EOF MAKE_ARGS="\$MAKE_ARGS CONFIG_DEBUG_INFO=y" EOF %endif +echo CONFIG_MODULES=%CONFIG_MODULES >> ../.rpm-defs %build source .rpm-defs @@ -322,7 +339,7 @@ export KBUILD_SYMTYPES=1 EOF source .kernel-binary.spec.buildenv -make %{?jobs:-j%jobs} all $MAKE_ARGS +make %{?jobs:-j%jobs} all $MAKE_ARGS CONFIG_DEBUG_SECTION_MISMATCH=y %install source .rpm-defs @@ -417,13 +434,16 @@ sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:xen:g" \ - %_sourcedir/pre.sh > ../pre.sh -( cat %_sourcedir/functions.sh + %_sourcedir/pre.sh > ../pre-base.sh +for sub in '-base' '' '-extra'; do + ( cat %_sourcedir/functions.sh sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:xen:g" \ + -e "s:@SUBPACKAGE@:kernel-xen$sub:g" \ %_sourcedir/post.sh -) > ../post.sh + ) > ../post$sub.sh +done ( cat %_sourcedir/functions.sh sed -e "s:@KERNELRELEASE@:$KERNELRELEASE:g" \ -e "s:@IMAGE@:$image:g" \ @@ -436,18 +456,16 @@ ln -s $image$suffix %buildroot/boot/$image$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix cp .config %buildroot/boot/config-$KERNELRELEASE -%if ! %build_nomodules +gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz +if [ $CONFIG_MODULES = y ]; then make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot -%endif -if ! %_sourcedir/check-supported-list \ + if ! %_sourcedir/check-supported-list \ %_sourcedir %buildroot/lib/modules/$KERNELRELEASE; then %if %supported_modules_check exit 1 %endif echo "Consistency check error: please update supported.conf." -fi -gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz -if grep -q '^CONFIG_MODULES=y$' .config; then + fi # Preserve exports from previous kernels when possible. old_symsets=%my_builddir/kabi/$SUBARCH/symsets-xen.tar.gz [ -e $old_symsets ] || old_symsets= @@ -461,42 +479,41 @@ %buildroot/boot/symsets-$KERNELRELEASE.tar.gz \ $old_symsets || [ -n "$ignore_kabi_changes" -o %tolerate_kabi_changes -ge 8 ] -fi -# Also put the resulting file in $obj_dir/$SUBARCH/xen -# so that kernel-source + kernel-xen is sufficient for building -# modules that have modversions as well. -obj_dir=usr/src/linux-${KERNELRELEASE%%-xen}-obj -mkdir -p %buildroot/$obj_dir/$SUBARCH/xen -cp Module.symvers %buildroot/$obj_dir/$SUBARCH/xen -# Table of types used in exported symbols (for modversion debugging). -%_sourcedir/modversions --pack . > %buildroot/boot/symtypes-$KERNELRELEASE -if [ -s %buildroot/boot/symtypes-$KERNELRELEASE ]; then + # Also put the resulting file in $obj_dir/$SUBARCH/xen + # so that kernel-source + kernel-xen is sufficient for building + # modules that have modversions as well. + obj_dir=usr/src/linux-${KERNELRELEASE%%-xen}-obj + mkdir -p %buildroot/$obj_dir/$SUBARCH/xen + cp Module.symvers %buildroot/$obj_dir/$SUBARCH/xen + # Table of types used in exported symbols (for modversion debugging). + %_sourcedir/modversions --pack . > %buildroot/boot/symtypes-$KERNELRELEASE + if [ -s %buildroot/boot/symtypes-$KERNELRELEASE ]; then gzip -9 %buildroot/boot/symtypes-$KERNELRELEASE -else + else rm -f %buildroot/boot/symtypes-$KERNELRELEASE -fi -# Some architecture's $(uname -m) output is different from the ARCH -# parameter that needs to be passed to kbuild. Create symlinks from -# $(uname -m) to the ARCH directory. -[ -e %buildroot/$obj_dir/%_target_cpu ] \ + fi + # Some architecture's $(uname -m) output is different from the ARCH + # parameter that needs to be passed to kbuild. Create symlinks from + # $(uname -m) to the ARCH directory. + [ -e %buildroot/$obj_dir/%_target_cpu ] \ || ln -sf $SUBARCH %buildroot/$obj_dir/%_target_cpu %ifarch ppc ppc64 -[ -e %buildroot/$obj_dir/ppc ] \ + [ -e %buildroot/$obj_dir/ppc ] \ || ln -s $SUBARCH %buildroot/$obj_dir/ppc -[ -e %buildroot/$obj_dir/ppc64 ] \ + [ -e %buildroot/$obj_dir/ppc64 ] \ || ln -s $SUBARCH %buildroot/$obj_dir/ppc64 %endif -# Check for kABI changes -KABI=0 -if [ -e %my_builddir/kabi/$SUBARCH/symvers-xen ]; then + # Check for kABI changes + KABI=0 + if [ -e %my_builddir/kabi/$SUBARCH/symvers-xen ]; then %_sourcedir/kabi-checks \ %my_builddir/kabi/$SUBARCH/symvers-xen \ Module.symvers \ %my_builddir/kabi/commonsyms \ %my_builddir/kabi/usedsyms \ || KABI=$? -fi -if [ $KABI -gt %tolerate_kabi_changes ]; then + fi + if [ $KABI -gt %tolerate_kabi_changes ]; then echo "kABI changes of badness $KABI exceed the maximum allowed badness" \ "of %tolerate_kabi_changes. Please try to avoid the kABI changes." if [ ! -e %my_builddir/kabi/$SUBARCH/ignore-xen -a \ @@ -508,68 +525,204 @@ fi # Indicate the ABI badness in build result emails. echo "KABI BADNESS $KABI" > %_rpmdir/%_arch/mbuild_subject.tag -fi -if [ $KABI -ge 8 ]; then + fi + if [ $KABI -ge 8 ]; then echo "To find out which types have changed relative to the reference" \ "symbols, diff the symtypes.gz files of the reference kernel" \ "against the symtypes.gz file from this build." -fi -# We were building in %my_builddir/linux-2.6.26, but the sources will -# later be installed in /usr/src/linux-2.6.26-%source_rel. Fix up the -# build symlink. -# need to fake modules directory to satisfy scripts -%if %build_nomodules -mkdir -p %buildroot/lib/modules/$KERNELRELEASE/ -%endif -rm -f %buildroot/lib/modules/$KERNELRELEASE/{source,build} -ln -s /usr/src/linux-${KERNELRELEASE%%-xen} \ + fi + # We were building in %my_builddir/linux-2.6.26, but the sources will + # later be installed in /usr/src/linux-2.6.26-%source_rel. Fix up the + # build symlink. + rm -f %buildroot/lib/modules/$KERNELRELEASE/{source,build} + ln -s /usr/src/linux-${KERNELRELEASE%%-xen} \ %buildroot/lib/modules/$KERNELRELEASE/source -ln -s /$obj_dir/$SUBARCH/xen \ + ln -s /$obj_dir/$SUBARCH/xen \ %buildroot/lib/modules/$KERNELRELEASE/build -# Abort if there are any undefined symbols -msg="$(/sbin/depmod -F %buildroot/boot/System.map-$KERNELRELEASE \ + # Abort if there are any undefined symbols + msg="$(/sbin/depmod -F %buildroot/boot/System.map-$KERNELRELEASE \ -b %buildroot -ae $KERNELRELEASE 2>&1)" -if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then + if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then exit 1 -fi -# Create a dummy initrd with roughly the size the real one will have. -# That way, YaST will know that this package requires some additional -# space in /boot. -dd if=/dev/zero of=%buildroot/boot/initrd-$KERNELRELEASE \ + fi + # Create a dummy initrd with roughly the size the real one will have. + # That way, YaST will know that this package requires some additional + # space in /boot. + dd if=/dev/zero of=%buildroot/boot/initrd-$KERNELRELEASE \ bs=1024 seek=2047 count=1 -# Collect the file list. +%if %split_packages + # Generate the lists of supported and unsupported modules. + ( cd %buildroot + for module in $(find lib/modules/$KERNELRELEASE -type f -name '*.ko'); do + case "$(/sbin/modinfo -F supported $module)" in + (yes|external) + echo "/$module" >> %my_builddir/supported-modules + ;; + (*) + echo "/$module" >> %my_builddir/unsupported-modules + ;; + esac + done + ) + add_dependent_modules() { + local modules_dep=$1 + xargs make -rRs -f <(echo -e '%:\n\t@echo $@' ; cat $modules_dep) + } + modules_dep=%buildroot/lib/modules/$KERNELRELEASE/modules.dep + # Make sure that no supported modules depend on any unsupported modules. + dependent_unsupported_modules=$( + comm -3 <(sort %my_builddir/supported-modules) \ + <(cat %my_builddir/supported-modules \ + | add_dependent_modules $modules_dep \ + | sort)) + if [ -n "$dependent_unsupported_modules" ]; then + echo "The following unsupported modules are used by supported modules:" + echo "$dependent_unsupported_modules" + echo "Please fix supported.conf." + exit 1 + fi + # Compute the list of base modules: modules that core modules depend on + # implicitly are also core modules. + grep -f %my_builddir/grep-for-base-modules %my_builddir/supported-modules \ + | add_dependent_modules $modules_dep > %my_builddir/base-modules + # All supported modules which are not core modules belong in kernel-kernel-xen. + comm -3 <(sort %my_builddir/supported-modules) \ + <(sort %my_builddir/base-modules) \ + > %my_builddir/main-modules +%else + ( cd %buildroot + find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' + ) > %my_builddir/base-modules +%endif + # Set up some module aliases + install -d -m 755 %buildroot/etc/modprobe.d/ + install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ +fi +add_dirs_to_filelist() { + local filelist + filelist=$(cat) + echo "$filelist" + # Below, we do this: + # - remove filelist macros + # - remove last pathname component + # - generate all parents and make the list unique + # - skip directories owned be other packages + # - add the %dir prefix (double-escaped for find and rpm) + echo "$filelist" \ + | sed -re 's:%%%%[a-z]+(\([^)]+\))? ?::g' \ + | sed -re 's:/[^/]+$::' \ + | sed -nre ':a; p; s:/[^/]+$::; ta' \ + | sort -u \ + | sed -r -e '\:^(|/boot|/etc|/lib(/modules|/firmware)?|/usr(/src)?)$:d' \ + | sed -e 's:^:%%%%dir :' +} +# Collect the file lists. ( cd %buildroot - echo "%%defattr(-, root, root)" + echo "%%%%defattr(-, root, root)" find boot \ - \( -type l -o -name 'initrd-*' \) -printf '%%%%ghost /%%p\n' -o \ + \( -type l -o -name 'initrd-*' \) -printf '%%%%%%%%ghost /%%p\n' -o \ -type f -printf '/%%p\n' + if [ $CONFIG_MODULES = y ]; then find lib/modules/$KERNELRELEASE \ - -type d -printf '%%%%dir /%%p\n' -o \ - -path '*/modules.*' -printf '%%%%ghost /%%p\n' -o \ - -printf '/%%p\n' - test -d lib/firmware && \ - find lib/firmware/$KERNELRELEASE \ - -type d -printf '%%%%dir /%%p\n' -o \ - -path '*/modules.*' -printf '%%%%ghost /%%p\n' -o \ + -type d -o \ + -path '*/modules.*' -printf '%%%%%%%%ghost /%%p\n' -o \ + -name '*.ko' -prune -o \ -printf '/%%p\n' + cat %my_builddir/base-modules + echo '%%%%config /etc/modprobe.d/module-renames' find $obj_dir \ - -type d -printf '%%%%dir /%%p\n' -o \ + -type d -o \ + -printf '/%%p\n' + fi + test -d lib/firmware/$KERNELRELEASE && \ + find lib/firmware/$KERNELRELEASE \ + -type d -o \ -printf '/%%p\n' - echo '%%dir /etc/modprobe.d/' - echo '%%config /etc/modprobe.d/module-renames' if [ -e .%_docdir/%name ]; then - echo "%%doc %_docdir/%name" + echo "%%%%doc %_docdir/%name" fi -) > %my_builddir/kernel.files -# Set up some module aliases -install -d -m 755 %buildroot/etc/modprobe.d/ -install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ - -%pre -f pre.sh +) | add_dirs_to_filelist > %my_builddir/kernel-base.files +%if %split_packages + ( echo "%%%%defattr(-, root, root)" + cat %my_builddir/main-modules + ) | add_dirs_to_filelist > %my_builddir/kernel-main.files + ( echo "%%%%defattr(-, root, root)" + cat %my_builddir/unsupported-modules + ) | add_dirs_to_filelist > %my_builddir/kernel-extra.files +%endif +# Hardlink duplicate files automatically (from package fdupes): It doesn't safe +# much, but it keeps rpmlint from breaking the package build. +%fdupes $RPM_BUILD_ROOT +cd %my_builddir # it helps if rpm can find the file lists ... %post -f post.sh %postun -f postun.sh +%if %split_packages + +%files -f kernel-main.files +%else + +%files -f kernel-base.files +%endif + +%package -n kernel-xen-base +Summary: The Xen Kernel - base modules +License: GPL v2 only +Group: System/Kernel +Url: http://www.kernel.org/ +AutoReqProv: on +Requires(pre): coreutils awk +Requires(post): module-init-tools +Requires(post): perl-Bootloader +Requires(post): mkinitrd + +%description -n kernel-xen-base +The Linux kernel for Xen paravirtualization. + +This kernel can be used both as the domain0 ("xen0") and as an +unprivileged ("xenU") kernel. + +This package contains only the base modules, required in all installs. + + + +Source Timestamp: 2008-09-29 15:31:19 +0200 + +%pre -n kernel-xen-base -f pre-base.sh + +%post -n kernel-xen-base -f post-base.sh +%if %split_packages + +%files -n kernel-xen-base -f kernel-base.files +%endif + +%package -n kernel-xen-extra +Summary: The Xen Kernel - extra modules +License: GPL v2 only +Group: System/Kernel +Url: http://www.kernel.org/ +AutoReqProv: on +Requires: kernel-xen = %version-%release +Requires(pre): coreutils awk +Requires(post): module-init-tools +Requires(post): perl-Bootloader +Requires(post): mkinitrd -%files -f kernel.files +%description -n kernel-xen-extra +The Linux kernel for Xen paravirtualization. + +This kernel can be used both as the domain0 ("xen0") and as an +unprivileged ("xenU") kernel. + +This package contains additional modules not supported by Novell. + + +Source Timestamp: 2008-09-29 15:31:19 +0200 + +%post -n kernel-xen-extra -f post-extra.sh +%if %split_packages + +%files -n kernel-xen-extra -f kernel-extra.files +%endif ++++++ build-source-timestamp ++++++ --- kernel-source/build-source-timestamp 2008-09-15 11:56:49.000000000 +0200 +++ /mounts/work_src_done/STABLE/kernel-source/build-source-timestamp 2008-09-29 15:34:30.842586000 +0200 @@ -1 +1 @@ -2008-09-15 10:58:05 +0200 +2008-09-29 15:31:19 +0200 ++++++ config.conf ++++++ --- kernel-source/config.conf 2008-09-15 11:56:57.000000000 +0200 +++ /mounts/work_src_done/STABLE/kernel-source/config.conf 2008-09-29 15:34:32.891865000 +0200 @@ -4,38 +4,33 @@ +IA32 i386/default +IA32 i386/pae +IA32 i386/debug -#+IA32 i386/um +IA32 i386/xen +IA32 i386/vanilla -#+IA32 i386/rt -#+IA32 i386/rt_debug ++IA32 - i386/rt ++IA32 - i386/rt_debug ++IA32 i386/trace +ia64 ia64/default +ia64 ia64/debug +ia64 ia64/vanilla ++ia64 ia64/trace +x86_64 x86_64/default -#+x86_64 x86_64/um +x86_64 x86_64/xen +x86_64 x86_64/debug +x86_64 x86_64/vanilla -#+x86_64 x86_64/rt -#+x86_64 x86_64/rt_debug -##+x86_64 x86_64/rt_timing - - -#+alpha alpha/default -#+alpha alpha/vanilla ++x86_64 - x86_64/rt ++x86_64 - x86_64/rt_debug ++x86_64 - x86_64/rt_timing ++x86_64 x86_64/trace +PPC powerpc/default +PPC powerpc/ppc64 +PPC powerpc/kdump +PPC powerpc/vanilla -#+PPC powerpc/rt ++PPC - powerpc/rt +PPC powerpc/ps3 +s390 s390/s390 +s390x s390/default +s390x s390/vanilla - -#+parisc parisc/default ++++++ config.tar.bz2 ++++++ ++++ 38141 lines of diff (skipped) ++++++ get_release_number.sh ++++++ --- kernel-source/get_release_number.sh 2008-09-15 11:56:58.000000000 +0200 +++ /mounts/work_src_done/STABLE/kernel-source/get_release_number.sh 2008-09-29 15:34:33.267488000 +0200 @@ -1,5 +1,5 @@ #! /bin/sh -prefix=rc6. +prefix=rc7. suffix= if [ "$3" = kernel-dummy -o -n "$suffix" ]; then [ -n "$suffix" ] || suffix=$2 ++++++ kabi.tar.bz2 ++++++ ++++++ needed_space_in_mb ++++++ --- kernel-source/needed_space_in_mb 2008-09-15 14:21:13.000000000 +0200 +++ /mounts/work_src_done/STABLE/kernel-source/needed_space_in_mb 2008-09-29 15:34:40.176742000 +0200 @@ -1 +1 @@ -6000 +6144 ++++++ patches.addon.tar.bz2 ++++++ ++++++ patches.apparmor.tar.bz2 ++++++ ++++++ patches.arch.tar.bz2 ++++++ ++++ 7662 lines of diff (skipped) ++++++ patches.drivers.tar.bz2 ++++++ ++++ 71612 lines of diff (skipped) ++++++ patches.fixes.tar.bz2 ++++++ ++++ 2110 lines of diff (skipped) ++++++ patches.kernel.org.tar.bz2 ++++++ kernel-source/patches.kernel.org.tar.bz2 /mounts/work_src_done/STABLE/kernel-source/patches.kernel.org.tar.bz2 differ: byte 11, line 1 ++++++ patches.rpmify.tar.bz2 ++++++ ++++++ patches.rt.tar.bz2 ++++++ ++++++ patches.suse.tar.bz2 ++++++ ++++ 8111 lines of diff (skipped) ++++++ patches.uml.tar.bz2 ++++++ ++++++ patches.xen.tar.bz2 ++++++ ++++ 29776 lines of diff (skipped) ++++++ post.sh ++++++ --- kernel-source/post.sh 2008-09-15 11:56:57.000000000 +0200 +++ /mounts/work_src_done/STABLE/kernel-source/post.sh 2008-09-29 15:34:32.912843000 +0200 @@ -26,27 +26,29 @@ esac fi -echo Setting up /lib/modules/@KERNELRELEASE@ -suffix= -case @FLAVOR@ in - kdump|ps3|um|xen*) - suffix=-@FLAVOR@ - ;; -esac -for x in /boot/@IMAGE@ /boot/initrd; do - rm -f $x$suffix - ln -s ${x##*/}-@KERNELRELEASE@ $x$suffix -done +if [ -e /lib/modules/@KERNELRELEASE@ ]; then + echo Setting up /lib/modules/@KERNELRELEASE@ + suffix= + case @FLAVOR@ in + kdump|ps3|um|xen*) + suffix=-@FLAVOR@ + ;; + esac + for x in /boot/@IMAGE@ /boot/initrd; do + rm -f $x$suffix + ln -s ${x##*/}-@KERNELRELEASE@ $x$suffix + done -if [ -x /sbin/module_upgrade ]; then - /sbin/module_upgrade --rename mptscsih="mptspi mptfc mptsas" -fi + if [ -x /sbin/module_upgrade ]; then + /sbin/module_upgrade --rename mptscsih="mptspi mptfc mptsas" + fi -# Add symlinks of compatible modules to /lib/modules/$krel/weak-updates/. -if [ -x /usr/lib/module-init-tools/weak-modules ]; then - /usr/lib/module-init-tools/weak-modules --add-kernel @KERNELRELEASE@ + # Add symlinks of compatible modules to /lib/modules/$krel/weak-updates/. + if [ -x /usr/lib/module-init-tools/weak-modules ]; then + /usr/lib/module-init-tools/weak-modules --add-kernel @KERNELRELEASE@ + fi + /sbin/depmod -a -F /boot/System.map-@KERNELRELEASE@ @KERNELRELEASE@ fi -/sbin/depmod -a -F /boot/System.map-@KERNELRELEASE@ @KERNELRELEASE@ message_install_bl () { echo "You may need to setup and install the boot loader using the" @@ -54,6 +56,11 @@ } run_bootloader () { + # Only create the bootloader entry when installing kernel-$flavor-base. + if [ @SUBPACKAGE@ != kernel-@FLAVOR@-base ]; then + return 1 + fi + if [ -f /etc/sysconfig/bootloader ] && [ -f /boot/grub/menu.lst -o \ -f /etc/lilo.conf -o \ ++++++ series.conf ++++++ --- kernel-source/series.conf 2008-09-15 11:56:43.000000000 +0200 +++ /mounts/work_src_done/STABLE/kernel-source/series.conf 2008-09-29 15:34:30.839585000 +0200 @@ -30,6 +30,7 @@ patches.kernel.org/patch-2.6.27-rc4 patches.kernel.org/patch-2.6.27-rc4-rc5 patches.kernel.org/patch-2.6.27-rc5-rc6 + patches.kernel.org/patch-2.6.27-rc6-rc7 ######################################################## # Build fixes that apply to the vanilla kernel too. @@ -42,9 +43,10 @@ patches.kernel.org/ipmi-section-conflict.diff patches.kernel.org/md-section-conflict patches.kernel.org/spu_profiler-include -+jeffm patches.kernel.org/ia64-asm-nr-irqs patches.kernel.org/setup_APIC_timer-section-mismatch patches.kernel.org/carmine-section-mismatch + patches.kernel.org/gdth-section-conflict + patches.kernel.org/arch-include-asm-fixes ######################################################## # kABI consistency patches @@ -85,6 +87,8 @@ patches.suse/setuid-dumpable-wrongdir patches.suse/sysctl-add-affinity_load_balancing patches.fixes/seccomp-disable-tsc-option + patches.suse/self-ptrace.patch + patches.suse/rwlocks-enable-interrupts ######################################################## # Architecture-specific patches. These used to be all @@ -98,6 +102,8 @@ ######################################################## patches.arch/ia64-node_mem_map-node_start_pfn.diff patches.arch/ia64-kdump_proc_iomem.diff + patches.fixes/ia64-sparse-fixes.diff + patches.arch/ia64-rwlocks-enable-interrupts ######################################################## # i386 @@ -122,6 +128,7 @@ patches.arch/x86-disable-broadcomm-boot-interrupt-generation.patch patches.arch/x86-disable-AMD-ATI-boot-interrupt-generation.patch patches.arch/x86-introduce-config-option-for-pci-reroute-quirks.patch + patches.arch/x86-self-ptrace.patch ######################################################## @@ -149,7 +156,7 @@ patches.arch/ppc-prom-nodisplay.patch patches.fixes/ptrace-getsiginfo patches.arch/ppc-ipic-suspend-without-83xx-fix - patches.fixes/powerpc-dereference_function_descriptor-depends-on-CONFIG_MODULES + patches.arch/ppc64-rpanote-relocate-firmware.patch ######################################################## # PS3 @@ -165,7 +172,7 @@ patches.arch/s390-01-01-self-ptrace-v3.patch patches.arch/s390-01-02-dcss-64-v2.patch -+jjolly patches.arch/s390-01-03-cmm2.patch + patches.arch/s390-01-03-cmm2-v2.patch patches.arch/s390-01-04-fcpperf-1.patch patches.arch/s390-01-04-fcpperf-2.patch patches.arch/s390-01-04-fcpperf-3.patch @@ -223,7 +230,6 @@ patches.suse/acpi-dsdt-initrd-v0.9a-2.6.25.patch patches.arch/acpi_thermal_passive_blacklist.patch - patches.fixes/acpi_use_acpi_exception.patch patches.fixes/acpi-clear-wake-status.patch @@ -238,6 +244,35 @@ patches.arch/0008-sony-laptop-fingers-off-backlight.patch patches.arch/0009-thinkpad_acpi-fingers-off-backlight.patch patches.arch/thinkpad_fingers_off_backlight_igd.patch + patches.arch/acpi_video_thinkpad_exclude_IGD_devices.patch + + patches.arch/acpi-dock-avoid-check-_STA-method.patch + patches.arch/acpi-dock-fix-eject-request-process.patch + patches.arch/acpi-dock-_LCK-support-for-dock.patch + patches.arch/acpi-dock-makeing-dock-driver-supports-bay-and-battery-hotplug.patch + patches.arch/acpi-dock-Fix-duplicate-notification-handler-register.patch + patches.arch/acpi-dock-fix-hotplug-race.patch + patches.arch/acpi-libata-hotplug-to-align-with-dock-driver.patch + patches.arch/acpi-dock-introduce-.uevent-for-devices-in-dock.patch + patches.arch/acpi-bay-remove-useless-code.patch + patches.arch/acpi-bay-remove-from-makefile + patches.arch/acpi-dock-fix-for-bay-in-a-dock-station.patch + patches.arch/acpi-dock-add-type-sysfs-file-for-dock.patch + patches.arch/acpi-export-hotplug_execute + + patches.fixes/acpi_use_acpi_exception.patch + + ######################################################## + # CPUFREQ + ######################################################## + # To be benchmarked (if time after late feature freeze): ++trenn patches.drivers/cpufreq_add_cpu_number_paramater_1.patch ++trenn patches.drivers/cpufreq_change_load_calculation_2.patch ++trenn patches.drivers/cpufreq_get_cpu_idle_time_changes_3.patch ++trenn patches.drivers/cpufreq_parameterize_down_differential_4.patch ++trenn patches.drivers/cpufreq_changes_to_get_cpu_idle_us_5.patch ++trenn patches.drivers/cpufreq_add_idle_microaccounting_6.patch + ######################################################## # Suse specific stuff ######################################################## @@ -248,6 +283,9 @@ # Networking, IPv6 ######################################################## patches.fixes/bridge-module-get-put.patch + patches.fixes/vlan-gso-size-fix + patches.fixes/pkt_sched_multiq_support + patches.fixes/pkt_action-skbedit ######################################################## # NFS @@ -266,6 +304,8 @@ ######################################################## patches.suse/ext3-barrier-default patches.suse/ext2-fsync-err + patches.fixes/ext2-avoid-printk-flood-with-dir-corruption + patches.fixes/ext3-avoid-printk-flood-with-dir-corruption ######################################################## # ext4 @@ -437,13 +477,24 @@ # ######################################################## -+kkeil patches.drivers/e1000-7.6.9.2 -+kkeil patches.drivers/e1000-7.6.5-napi-tail.patch -+kkeil patches.drivers/e1000-7.6.9.2-napi patches.drivers/e1000e_add_82574L.patch patches.drivers/e1000e_add_ICH9_BM.patch patches.drivers/e1000e_add_LOM_devices.patch + # debug 425480 + patches.suse/e1000e_Export_set_memory_ro-rw + patches.suse/e1000e_use_set_memory_ro-rw_to_protect_flash_memory + patches.suse/e1000e_reset_swflag_after_resetting_hardware + patches.suse/e1000e_do_not_ever_sleep_in_interrupt_context + patches.suse/e1000e_fix_lockdep_issues + patches.suse/e1000e_drop_stats_lock + patches.suse/e1000e_debug_contention_on_NVM_SWFLAG + patches.suse/e1000e_update_version + patches.suse/e1000e_allow_bad_checksum + patches.suse/e1000e_call_dump_eeprom + patches.suse/e1000e_mmap_range_chk + + patches.drivers/ixgbe-fcoe-bugfixes patches.drivers/sgi-uv-led # Add support for Montevina hardware; series mainlined 2.6.26 @@ -466,9 +517,18 @@ patches.fixes/scsi-misc-git-update patches.fixes/scsi-enhance-error-codes + patches.fixes/scsi-terminate-target-reset + + # FCoE + patches.drivers/open-fcoe-header-files + patches.drivers/open-fcoe-libfc + patches.drivers/open-fcoe-driver + patches.drivers/open-fcoe-dcb-support patches.drivers/lpfc-8.2.8-update patches.drivers/lpfc-8.2.8.1-update + patches.drivers/qla2xxx-8.02.01-k8-update + patches.drivers/qla2xxx-defer-risc-interrupt-enablement # patches.fixes/mptbase-vmware-fix # Remaining SCSI patches (garloff) @@ -491,7 +551,7 @@ ######################################################## # iSCSI ######################################################## -+2.6.24 patches.fixes/libiscsi-iscsi_pool_free-api-change + patches.fixes/open-iscsi-git-update ######################################################## # PCI and PCI hotplug @@ -519,6 +579,7 @@ ######################################################## patches.suse/bootsplash patches.fixes/input-add-amilo-pro-v-to-nomux.patch + patches.drivers/elousb.patch ########################################################## # Sound @@ -556,6 +617,16 @@ patches.suse/rq-based-block-layer patches.suse/rq-based-dm-interface patches.suse/rq-based-multipath-functions + patches.fixes/dm-mpath-abort-queue + patches.suse/rq-based-init-crash + patches.suse/dm-barrier-single-device + + ######################################################## + # md + ######################################################## + patches.fixes/md-Allow-metadata_version-to-be-updated-for-externa.patch + patches.fixes/md-Don-t-try-to-set-an-array-to-read-auto-if-it-i.patch + ########################################################## # @@ -637,6 +708,76 @@ ######################################################## patches.suse/crasher-26.diff patches.suse/stack-unwind + patches.suse/no-frame-pointer-select + + ######################################################## + # Tracing + ######################################################## + # in tip/tracing/ftrace + patches.trace/rcu-read-sched.patch + patches.trace/markers-use-rcu-read-lock-sched.patch + + # in tip/tracing/ftrace + patches.trace/tracepoints.patch + patches.trace/tracepoints-use-table-size-macro.patch + patches.trace/tracepoints-documentation.patch + patches.trace/tracepoints-tracepoint-synchronize-unregister.patch + patches.trace/tracepoints-documentation-fix-teardown.patch + patches.trace/tracepoints-samples.patch + patches.trace/tracepoints-samples-fix-teardown.patch + + patches.trace/lttng-instrumentation-irq.patch + patches.trace/lttng-instrumentation-scheduler.patch + patches.trace/lttng-instrumentation-timer.patch + patches.trace/lttng-instrumentation-kernel.patch + patches.trace/lttng-instrumentation-filemap.patch + patches.trace/lttng-instrumentation-swap.patch + patches.trace/lttng-instrumentation-memory.patch + patches.trace/lttng-instrumentation-page_alloc.patch + patches.trace/lttng-instrumentation-hugetlb.patch + patches.trace/lttng-instrumentation-net.patch + patches.trace/lttng-instrumentation-ipv4.patch + patches.trace/lttng-instrumentation-ipv6.patch + patches.trace/lttng-instrumentation-socket.patch + patches.trace/lttng-instrumentation-fs.patch + patches.trace/lttng-instrumentation-ipc.patch + + patches.trace/ftrace-port-to-tracepoints.patch + patches.trace/ftrace-framepointer.diff + + ######################################################## + # Swap over NFS + ######################################################## + + patches.suse/SoN-01-mm-gfp-to-alloc_flags.patch + patches.suse/SoN-02-mm-setup_per_zone_pages_min.patch + patches.suse/SoN-03-doc.patch + patches.suse/SoN-04-mm-gfp-to-alloc_flags-expose.patch + patches.suse/SoN-05-page_alloc-reserve.patch + patches.suse/SoN-06-reserve-slub.patch + patches.suse/SoN-07-mm-kmem_estimate_pages.patch + patches.suse/SoN-08-mm-PF_MEMALLOC-softirq.patch + patches.suse/SoN-09-mm-page_alloc-emerg.patch + patches.suse/SoN-10-global-ALLOC_NO_WATERMARKS.patch + patches.suse/SoN-11-mm-page_alloc-GFP_EMERGENCY.patch + patches.suse/SoN-12-mm-reserve.patch + patches.suse/SoN-13-mm-selinux-emergency.patch + patches.suse/SoN-14-net-backlog.patch + patches.suse/SoN-15-net-ps_rx.patch + patches.suse/SoN-16-net-sk_allocation.patch + patches.suse/SoN-17-netvm-reserve.patch + patches.suse/SoN-18-netvm-reserve-inet.patch + patches.suse/SoN-19-netvm-skbuff-reserve.patch + patches.suse/SoN-20-netvm-sk_filter.patch + patches.suse/SoN-21-netvm-tcp-deadlock.patch + patches.suse/SoN-22-emergency-nf_queue.patch + patches.suse/SoN-23-netvm.patch + patches.suse/SoN-24-mm-swapfile.patch + patches.suse/SoN-25-mm-page_file_methods.patch + patches.suse/SoN-26-nfs-swapcache.patch + patches.suse/SoN-27-nfs-swapper.patch + patches.suse/SoN-28-nfs-swap_ops.patch + patches.suse/SoN-29-nfs-alloc-recursions.patch ######################################################## # You'd better have a good reason for adding a patch @@ -676,8 +817,9 @@ -RT patches.xen/linux-2.6.19-rc1-kexec-move_segment_code-i386.patch -RT patches.xen/linux-2.6.19-rc1-kexec-move_segment_code-x86_64.patch -RT patches.xen/ipv6-no-autoconf -- patches.xen/sfc-driverlink -- patches.xen/sfc-resource-driver +-RT patches.xen/sfc-driverlink +-RT patches.xen/sfc-resource-driver +-RT patches.xen/sfc-driverlink-conditional # bulk stuff, new files for xen -RT patches.xen/xen3-auto-xen-arch.diff @@ -715,6 +857,8 @@ -RT patches.xen/xen3-patch-2.6.27-rc3 -RT patches.xen/xen3-patch-2.6.27-rc3-rc4 -RT patches.xen/xen3-patch-2.6.27-rc4-rc5 +-RT patches.xen/xen3-patch-2.6.27-rc5-rc6 +-RT patches.xen/xen3-patch-2.6.27-rc6-rc7 -RT patches.xen/xen3-seccomp-disable-tsc-option +andrea -RT patches.xen/xen3-silent-stack-overflow -RT patches.xen/xen3-sysfs-crash-debugging.patch @@ -740,8 +884,9 @@ -RT patches.xen/xen-x86_64-dump-user-pgt -RT patches.xen/xen-blktap-write-barriers -RT patches.xen/xen-x86-bigmem --RT patches.xen/xen-msix-restore -RT patches.xen/xen-scsifront-block-timeout-update +-RT patches.xen/xen-rwlocks-enable-interrupts +-RT patches.xen/xen-e1000e_Export_set_memory_ro-rw # # base tree: 2.6.23-rc4 ++++++ source-post.sh ++++++ --- kernel-source/source-post.sh 2008-09-15 11:56:57.000000000 +0200 +++ /mounts/work_src_done/STABLE/kernel-source/source-post.sh 2008-09-29 15:34:32.907854000 +0200 @@ -1,20 +1,2 @@ -relink linux-@KERNELRELEASE@ /usr/src/linux +relink linux-@KERNELRELEASE@@VARIANT@ /usr/src/linux@VARIANT@ relink linux-@KERNELRELEASE@-obj /usr/src/linux-obj - -if [ -e /.buildenv ]; then - # Autobuild has a modified version of uname that reports a specific - # kernel version if /.kernelversion exists. - arch=$(echo %_target_cpu \ - | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \ - -e s/arm.*/arm/ -e s/sa110/arm/ \ - -e s/s390x/s390/ -e s/parisc64/parisc/ \ - -e s/ppc.*/powerpc/) - flavor="$( - cd /usr/src/linux-@KERNELRELEASE@/arch/$arch - set -- defconfig.* - [ -e defconfig.default ] && set -- defconfig.default - echo ${1/defconfig.} - )" - - echo @KERNELRELEASE@-$flavor > /.kernelversion -fi ++++++ supported.conf ++++++ --- kernel-source/supported.conf 2008-09-15 11:56:57.000000000 +0200 +++ /mounts/work_src_done/STABLE/kernel-source/supported.conf 2008-09-29 15:34:32.903860000 +0200 @@ -1,3 +1,13 @@ +# Configuration of base modules (which are supported), regularly and +# externally supported modules, and unsupported modules. +# See series.conf for a list of symbols defined. +# +# Use "-" for unsupported modules, "+base" for modules for +# kernel-$flavor-base, and "+external" for externally supported modules. +# +# Modules that a base module uses implicitly are also base modules, +# but at least they need to be marked as supported here. + kernel/arch/i386/crypto/aes-i586 # Rijndael (AES) Cipher Algorithm (optimized for i586) kernel/arch/i386/kernel/cpu/cpufreq/cpufreq-nforce2 kernel/arch/i386/kernel/cpu/cpufreq/gx-suspmod @@ -66,7 +76,7 @@ kernel/drivers/acpi/thermal # ACPI Thermal Zone Driver kernel/drivers/acpi/toshiba_acpi kernel/drivers/acpi/video - kernel/drivers/acpi/dock # Be careful: libata depends on it ++base kernel/drivers/acpi/dock # Be careful: libata depends on it kernel/drivers/acpi/bay kernel/drivers/acpi/acpi_memhotplug kernel/drivers/thermal/thermal_sys # Generic Thermal Driver, compiled in for now @@ -78,6 +88,21 @@ kernel/drivers/acpi/wmi kernel/drivers/misc/hp-wmi kernel/drivers/misc/hpilo + kernel/drivers/misc/enclosure ++base kernel/drivers/ata/ahci ++base kernel/drivers/ata/ata_piix # SCSI low-level driver for Intel PIIX/ICH ATA controllers + kernel/drivers/ata/sata_mv # Marvell SATA support + kernel/drivers/ata/sata_nv # low-level driver for NVIDIA nForce SATA controller + kernel/drivers/ata/sata_promise # Promise SATA low-level driver + kernel/drivers/ata/sata_qstor # Pacific Digital Corporation QStor SATA + kernel/drivers/ata/sata_sil # low-level driver for Silicon Image SATA controller + kernel/drivers/ata/sata_sil24 # Silicon Image SATA + kernel/drivers/ata/sata_sis # low-level driver for Silicon Integratad Systems SATA controller + kernel/drivers/ata/sata_svw # low-level driver for K2 SATA controller + kernel/drivers/ata/sata_sx4 # Promise SATA low-level driver + kernel/drivers/ata/sata_uli # low-level driver for ULi Electronics SATA controller + kernel/drivers/ata/sata_via # SCSI low-level driver for VIA SATA controllers + kernel/drivers/ata/sata_vsc # low-level driver for Vitesse VSC7174 SATA controller kernel/drivers/ata/pata_pdc2027x # pSeries IDE hotplug - kernel/drivers/atm/adummy - kernel/drivers/atm/ambassador @@ -102,7 +127,7 @@ kernel/drivers/block/cpqarray # Driver for Compaq Smart2 Array Controllers version 2.6.0 kernel/drivers/block/cryptoloop # loop blockdevice transferfunction adaptor / CryptoAPI kernel/drivers/block/floppy - kernel/drivers/block/loop ++base kernel/drivers/block/loop kernel/drivers/block/loop_fish2 kernel/drivers/block/nbd # Network Block Device - kernel/drivers/block/paride/aten @@ -276,7 +301,7 @@ kernel/drivers/dump/dump_gzip kernel/drivers/dump/dump_netdev kernel/drivers/dump/dump_rle - kernel/drivers/firmware/edd ++base kernel/drivers/firmware/edd - kernel/drivers/hwmon/abituguru # Abit uGuru rev. 1 and 2 - kernel/drivers/hwmon/abituguru3 # Abit uGuru rev. 3 - kernel/drivers/hwmon/ad7418 # AD7416, AD7417, AD7418 @@ -349,20 +374,19 @@ kernel/drivers/i2c/busses/i2c-ali1563 kernel/drivers/i2c/busses/i2c-ali15x3 # ALI15X3 SMBus driver kernel/drivers/i2c/busses/i2c-amd756 # AMD756/766/768/8111 and nVidia nForce SMBus driver - kernel/drivers/i2c/busses/i2c-amd756-s4882 + kernel/drivers/i2c/busses/i2c-amd756-s4882 # SMBus multiplexing, Tyan S4882 kernel/drivers/i2c/busses/i2c-amd8111 # AMD8111 SMBus 2.0 driver kernel/drivers/i2c/busses/i2c-hydra - kernel/drivers/i2c/busses/i2c-i801 # I801 SMBus driver -- kernel/drivers/i2c/busses/i2c-i810 # I810/I815 I2C/DDC driver (deprecated) + kernel/drivers/i2c/busses/i2c-i801 # Intel 82801 SMBus driver + kernel/drivers/i2c/busses/i2c-isch # Intel SCH SMBus driver kernel/drivers/i2c/busses/i2c-nforce2 # nForce2 SMBus driver + kernel/drivers/i2c/busses/i2c-nforce2-s4985 # SMBus multiplexing, Tyan S4985 kernel/drivers/i2c/busses/i2c-ocores kernel/drivers/i2c/busses/i2c-parport # I2C bus over parallel port kernel/drivers/i2c/busses/i2c-parport-light # I2C bus over parallel port (light) kernel/drivers/i2c/busses/i2c-pca-isa # ISA base PCA9564 driver - kernel/drivers/i2c/busses/i2c-piix4 ++base kernel/drivers/i2c/busses/i2c-piix4 kernel/drivers/i2c/busses/i2c-powermac -- kernel/drivers/i2c/busses/i2c-prosavage # ProSavage DDC driver (deprecated) -- kernel/drivers/i2c/busses/i2c-savage4 # Savage4 DDC driver (deprecated) kernel/drivers/i2c/busses/i2c-simtec kernel/drivers/i2c/busses/i2c-sis5595 # SIS5595 SMBus driver kernel/drivers/i2c/busses/i2c-sis630 # SIS630 SMBus driver @@ -382,11 +406,11 @@ - kernel/drivers/i2c/chips/pcf8575 # PCF8575 GPIO driver (deprecated) kernel/drivers/i2c/chips/pcf8591 # PCF8591 driver kernel/drivers/i2c/chips/tsl2550 # Light sensor - kernel/drivers/i2c/i2c-core # I2C-Bus main module ++base kernel/drivers/i2c/i2c-core # I2C-Bus main module kernel/drivers/i2c/i2c-dev # I2C /dev entries driver - kernel/drivers/ide/ide-cd - kernel/drivers/ide/ide-core - kernel/drivers/ide/ide-disk + kernel/drivers/ide/ide-cd_mod ++base kernel/drivers/ide/ide-core ++base kernel/drivers/ide/ide-disk kernel/drivers/ide/ide-floppy kernel/drivers/ide/ide-generic +check kernel/drivers/ide/ide-tape # ATAPI Streaming TAPE Driver @@ -537,9 +561,8 @@ - kernel/drivers/macintosh/mol/mol - kernel/drivers/macintosh/mol/sheep kernel/drivers/md/dm-crypt # device-mapper target for transparent encryption / decryption - kernel/drivers/md/dm-emc # Multipath support for EMC CLARiiON AX/CX-series hardware kernel/drivers/md/dm-mirror # device-mapper mirror target - kernel/drivers/md/dm-mod # device-mapper driver ++base kernel/drivers/md/dm-mod # device-mapper driver kernel/drivers/md/dm-multipath # device-mapper multipath target kernel/drivers/md/dm-round-robin # Round-robin path selector kernel/drivers/md/dm-snapshot # device-mapper snapshot target @@ -779,7 +802,7 @@ kernel/drivers/net/8139cp # RealTek RTL-8139C+ series 10/100 PCI Ethernet driver kernel/drivers/net/8139too # RealTek RTL-8139 Fast Ethernet driver +isa kernel/drivers/net/82596 - kernel/drivers/net/8390 ++base kernel/drivers/net/8390 +isa kernel/drivers/net/ac3200 kernel/drivers/net/acenic # AceNIC/3C985/GA620 Gigabit Ethernet driver kernel/drivers/net/amd8111e # AMD8111 based 10/100 Ethernet Controller. Driver Version 3.0.3 @@ -868,6 +891,7 @@ +isa kernel/drivers/net/irda/w83977af_ir kernel/drivers/net/iseries_veth kernel/drivers/net/ixgb/ixgb # Intel(R) PRO/10GbE Network Driver + kernel/drivers/net/ixgbe/ixgbe # Intel(R) PRO/10GbE PCI Express Network Driver +isa kernel/drivers/net/lance +isa kernel/drivers/net/lp486e kernel/drivers/net/mace @@ -875,7 +899,7 @@ - kernel/drivers/net/mv643xx_eth # gigabit Pegasos2, all chips share the same MAC kernel/drivers/net/natsemi # National Semiconductor DP8381x series PCI Ethernet driver +isa kernel/drivers/net/ne - kernel/drivers/net/ne2k-pci # PCI NE2000 clone driver ++base kernel/drivers/net/ne2k-pci # PCI NE2000 clone driver kernel/drivers/net/netconsole # Console driver for network interfaces +isa kernel/drivers/net/ni5010 +isa kernel/drivers/net/ni52 @@ -892,12 +916,14 @@ kernel/drivers/net/pcmcia/smc91c92_cs # SMC 91c92 series PCMCIA ethernet driver kernel/drivers/net/pcmcia/xirc2ps_cs # Xircom PCMCIA ethernet driver kernel/drivers/net/pcnet32 # Driver for PCnet32 and PCnetPCI based ethercards + kernel/drivers/net/phy/broadcom kernel/drivers/net/phy/cicada kernel/drivers/net/phy/davicom kernel/drivers/net/phy/libphy kernel/drivers/net/phy/lxt kernel/drivers/net/phy/marvell kernel/drivers/net/phy/qsemi + kernel/drivers/net/phy/realtek kernel/drivers/net/plip kernel/drivers/net/ppp_async kernel/drivers/net/ppp_deflate @@ -1064,26 +1090,31 @@ kernel/drivers/s390/scsi/zfcp_hbaapi kernel/drivers/scsi/3w-9xxx # 3ware 9000 Storage Controller Linux Driver kernel/drivers/scsi/3w-xxxx # 3ware Storage Controller Linux Driver - kernel/drivers/scsi/BusLogic ++base kernel/drivers/scsi/BusLogic +isa kernel/drivers/scsi/NCR53c406a - kernel/drivers/scsi/a100u2w # Initio INI-A100U2W kernel/drivers/scsi/aacraid/aacraid # Dell PERC2, 2/Si, 3/Si, 3/Di, Adaptec Advanced Raid Products, and HP NetRAID-4M SCSI driver +- kernel/drivers/scsi/advansys # Advansys driver, rewrite not yet finished +isa kernel/drivers/scsi/aha152x +isa kernel/drivers/scsi/aha1542 - kernel/drivers/scsi/ahci kernel/drivers/scsi/aic7xxx/aic79xx # Adaptec Aic790X U320 SCSI Host Bus Adapter driver kernel/drivers/scsi/aic7xxx/aic7xxx # Adaptec Aic77XX/78XX SCSI Host Bus Adapter driver - kernel/drivers/scsi/aic7xxx_old +- kernel/drivers/scsi/aic7xxx_old kernel/drivers/scsi/aic94xx/aic94xx - kernel/drivers/scsi/ata_piix # SCSI low-level driver for Intel PIIX/ICH ATA controllers + kernel/drivers/scsi/arcmsr/arcmsr # Areca RAID HBA kernel/drivers/scsi/atp870u - kernel/drivers/scsi/ch # device driver for scsi media changer devices kernel/drivers/scsi/dc395x # SCSI host adapter driver for Tekram TRM-S1040 based adapters: Tekram DC395 and DC315 series kernel/drivers/scsi/dmx3191d kernel/drivers/scsi/dpt_i2o +isa kernel/drivers/scsi/dtc + kernel/drivers/scsi/device_handler/scsi_dm # SCSI device handler + kernel/drivers/scsi/device_handler/scsi_dm_alua + kernel/drivers/scsi/device_handler/scsi_dm_emc + kernel/drivers/scsi/device_handler/scsi_dm_hp_sw + kernel/drivers/scsi/device_handler/scsi_dm_rdac kernel/drivers/scsi/eata # EATA/DMA SCSI Driver kernel/drivers/scsi/fdomain # Future domain SCSI driver + kernel/drivers/scsi/fcoe/fcoe # Open-FCoE software driver +isa kernel/drivers/scsi/g_NCR5380 +isa kernel/drivers/scsi/g_NCR5380_mmio kernel/drivers/scsi/gdth @@ -1097,8 +1128,12 @@ kernel/drivers/scsi/ips kernel/drivers/scsi/iscsi_tcp # open-iscsi client kernel/drivers/scsi/iscsitarget/iscsi_trgt - kernel/drivers/scsi/libata # Library module for ATA devices + kernel/drivers/scsi/hptiop ++base kernel/drivers/scsi/libata # Library module for ATA devices + kernel/drivers/scsi/libfc/libfc # Library module for FC devices kernel/drivers/scsi/libiscsi # open-iscsi library + kernel/drivers/scsi/libsas/libsas # Library module for SAS devices + kernel/drivers/scsi/libsrp # Library module for SRP devices kernel/drivers/scsi/lpfc/lpfc kernel/drivers/scsi/mac53c94 kernel/drivers/scsi/megaraid # LSI Logic MegaRAID driver @@ -1106,6 +1141,7 @@ kernel/drivers/scsi/megaraid/megaraid_mm kernel/drivers/scsi/megaraid/megaraid_sas kernel/drivers/scsi/mesh + kernel/drivers/scsi/mvsas kernel/drivers/scsi/nsp32 kernel/drivers/scsi/osst # OnStream {DI-|FW-|SC-|USB}{30|50} Tape Driver +isa kernel/drivers/scsi/pas16 @@ -1124,30 +1160,23 @@ kernel/drivers/scsi/qlogicfas408 # Driver for the Qlogic FAS SCSI controllers kernel/drivers/scsi/qlogicfc kernel/drivers/scsi/raid_class # implementation of a simple raid visualisation class - kernel/drivers/scsi/sas/scsi_transport_sas_domain - kernel/drivers/scsi/sata_mv # Marvell SATA support - kernel/drivers/scsi/sata_nv # low-level driver for NVIDIA nForce SATA controller - kernel/drivers/scsi/sata_promise # Promise SATA low-level driver - kernel/drivers/scsi/sata_qstor # Pacific Digital Corporation QStor SATA - kernel/drivers/scsi/sata_sil # low-level driver for Silicon Image SATA controller - kernel/drivers/scsi/sata_sil24 # Silicon Image SATA - kernel/drivers/scsi/sata_sis # low-level driver for Silicon Integratad Systems SATA controller - kernel/drivers/scsi/sata_svw # low-level driver for K2 SATA controller - kernel/drivers/scsi/sata_sx4 # Promise SATA low-level driver - kernel/drivers/scsi/sata_uli # low-level driver for ULi Electronics SATA controller - kernel/drivers/scsi/sata_via # SCSI low-level driver for VIA SATA controllers - kernel/drivers/scsi/sata_vsc # low-level driver for Vitesse VSC7174 SATA controller kernel/drivers/scsi/scsi_debug # SCSI debug adapter driver +ia64 kernel/drivers/scsi/scsi_dump # lkcd dumps to SCSI blkdev - kernel/drivers/scsi/scsi_mod # SCSI core ++base kernel/drivers/scsi/scsi_mod # SCSI core + kernel/drivers/scsi/scsi_tgt # SCSI Target Mode framework kernel/drivers/scsi/scsi_transport_fc # FC Transport Attributes kernel/drivers/scsi/scsi_transport_iscsi kernel/drivers/scsi/scsi_transport_sas # Serial Attached SCSI (SAS) transport class kernel/drivers/scsi/scsi_transport_spi # SPI Transport Attributes - kernel/drivers/scsi/sd_mod # SCSI disk (sd) driver - kernel/drivers/scsi/sg # SCSI generic (sg) driver - kernel/drivers/scsi/sr_mod - kernel/drivers/scsi/st # SCSI Tape Driver + kernel/drivers/scsi/scsi_transport_srp # SRP Transport Attributes + kernel/drivers/scsi/scsi_wait_scan # SCSI wait for scanning module + kernel/drivers/scsi/ch # device driver for scsi media changer devices ++base kernel/drivers/scsi/sd_mod # SCSI disk (sd) driver + kernel/drivers/scsi/ses # SCSI Enclosure Services Driver ++base kernel/drivers/scsi/sg # SCSI generic (sg) driver ++base kernel/drivers/scsi/sr_mod ++base kernel/drivers/scsi/st # SCSI Tape Driver + kernel/drivers/scsi/stex # SCSI Tape Driver +isa kernel/drivers/scsi/sym53c416 kernel/drivers/scsi/sym53c8xx_2/sym53c8xx +isa kernel/drivers/scsi/t128 @@ -1182,13 +1211,13 @@ - kernel/drivers/usb/atm/xusbatm # dumb usbatm-based driver for modems initialized in userspace kernel/drivers/usb/class/cdc-acm # USB Abstract Control Model driver for USB modems and ISDN adapters kernel/drivers/usb/class/usblp # USB Printer Device Class driver - kernel/drivers/usb/core/usbcore - kernel/drivers/usb/host/ehci-hcd # 2003-Dec-29 USB 2.0 'Enhanced' Host Controller (EHCI) Driver ++base kernel/drivers/usb/core/usbcore ++base kernel/drivers/usb/host/ehci-hcd # 2003-Dec-29 USB 2.0 'Enhanced' Host Controller (EHCI) Driver - kernel/drivers/usb/host/isp116x-hcd # ISP116x HCD (Host Controller Driver) for USB kernel/drivers/usb/host/ohci-hcd # 2004 Feb 02 USB 1.1 'Open' Host Controller (OHCI) Driver kernel/drivers/usb/host/sl811-hcd - kernel/drivers/usb/host/sl811_cs # PCMCIA driver for SL811HS (as found in REX-CFU1U) - kernel/drivers/usb/host/uhci-hcd # USB Universal Host Controller Interface driver ++base kernel/drivers/usb/host/uhci-hcd # USB Universal Host Controller Interface driver kernel/drivers/usb/image/mdc800 # USB Driver for Mustek MDC800 Digital Camera kernel/drivers/usb/image/microtek # Microtek Scanmaker X6 USB scanner driver - kernel/drivers/usb/input/acecad # USB Acecad "Acecad Flair" tablet support @@ -1280,7 +1309,7 @@ kernel/drivers/usb/serial/usbserial # USB Serial Driver core kernel/drivers/usb/serial/visor # USB HandSpring Visor / Palm OS driver kernel/drivers/usb/serial/whiteheat # USB ConnectTech WhiteHEAT driver - kernel/drivers/usb/storage/usb-storage # USB Mass Storage driver for Linux ++base kernel/drivers/usb/storage/usb-storage # USB Mass Storage driver for Linux - kernel/drivers/video/arcfb # FB driver for Arc monochrome LCD board kernel/drivers/video/aty/aty128fb # FBDev driver for ATI Rage128 / Pro cards kernel/drivers/video/aty/atyfb @@ -1331,12 +1360,12 @@ - kernel/drivers/w1/wire # Driver for 1-wire Dallas network protocol. kernel/drivers/xen/blkback/blkbk # Xen block device backend kernel/drivers/xen/blktap/blkbktap # Xen TAP block device backend - kernel/drivers/xen/blkfront/xenblk # Xen block device frontend ++base kernel/drivers/xen/blkfront/xenblk # Xen block device frontend kernel/drivers/xen/fbfront/xenfb # Xen virtual frame buffer frontend kernel/drivers/xen/fbfront/xenkbd # Xen virtual keyboard frontend kernel/drivers/xen/netback/netbk # Xen network device backend kernel/drivers/xen/netback/netloop # Xen network loopback device - kernel/drivers/xen/netfront/xennet # Xen network device frontend ++base kernel/drivers/xen/netfront/xennet # Xen network device frontend - kernel/drivers/xen/pciback/pciback # Xen PCI device backend - kernel/drivers/xen/tpmback/tpmbk # Xen TPM device backend kernel/drivers/xen/xenbus/xenbus_be # Xen XenBus backend driver support module @@ -1346,6 +1375,7 @@ kernel/drivers/virtio/virtio_pci kernel/drivers/block/virtio_blk kernel/drivers/net/virtio_net + kernel/drivers/char/virtio_console - kernel/fs/9p/9p2000 - kernel/fs/adfs/adfs - kernel/fs/affs/affs # Amiga filesystem support for Linux @@ -1363,7 +1393,7 @@ - kernel/fs/efs/efs kernel/fs/exportfs/exportfs kernel/fs/ext2/ext2 # Second Extended Filesystem - kernel/fs/ext3/ext3 # Second Extended Filesystem with journaling extensions ++base kernel/fs/ext3/ext3 # Second Extended Filesystem with journaling extensions kernel/fs/fat/fat - kernel/fs/freevxfs/freevxfs # Veritas Filesystem (VxFS) driver kernel/fs/fuse/fuse # FUSE: Filesystem in Userspace @@ -1372,11 +1402,11 @@ - kernel/fs/hpfs/hpfs kernel/fs/hppfs/hppfs kernel/fs/isofs/isofs - kernel/fs/jbd/jbd ++base kernel/fs/jbd/jbd - kernel/fs/jffs/jffs # The Journalling Flash File System - kernel/fs/jffs2/jffs2 # The Journalling Flash File System, v2 kernel/fs/lockd/lockd - kernel/fs/mbcache ++base kernel/fs/mbcache kernel/fs/minix/minix kernel/fs/msdos/msdos kernel/fs/ncpfs/ncpfs @@ -1554,7 +1584,7 @@ kernel/net/ipv6/esp6 kernel/net/ipv6/ip6_tunnel # IPv6-in-IPv6 tunnel kernel/net/ipv6/ipcomp6 # IP Payload Compression Protocol (IPComp) for IPv6 - RFC3173 - kernel/net/ipv6/ipv6 # IPv6 protocol stack for Linux ++base kernel/net/ipv6/ipv6 # IPv6 protocol stack for Linux kernel/net/ipv6/xfrm6_tunnel kernel/net/netfilter/nfnetlink @@ -1689,7 +1719,7 @@ - kernel/net/llc/llc - kernel/net/llc/llc2 # IEEE 802.2 PF_LLC support - kernel/net/netrom/netrom # The amateur radio NET/ROM network and transport layer protocol - kernel/net/packet/af_packet ++base kernel/net/packet/af_packet - kernel/net/rose/rose # The amateur radio ROSE network layer protocol - kernel/net/rxrpc/rxrpc # Rx RPC implementation - kernel/net/sched/act_gact @@ -1926,3 +1956,56 @@ +external kernel/drivers/firmware/dell_rbu +external kernel/fs/cifs/cifs # VFS to access servers complying with the SNIA CIFS Specification e.g. Samba and Windows; supported by IBM +external kernel/fs/jfs/jfs # The Journaled Filesystem (JFS), supported by IBM + + kernel/arch/ia64/kernel/err_inject + kernel/arch/powerpc/oprofile/oprofile + kernel/arch/s390/crypto/sha_common + kernel/crypto/aead + kernel/crypto/aes_generic + kernel/crypto/crypto_blkcipher + kernel/crypto/twofish_common + kernel/drivers/ata/pata_sis + kernel/drivers/char/hw_random/rng-core + kernel/drivers/char/nsc_gpio + kernel/drivers/dca/dca + kernel/drivers/hid/hid + kernel/drivers/input/ff-memless + kernel/drivers/leds/led-class + kernel/drivers/md/dm-log + kernel/drivers/media/video/cx2341x + kernel/drivers/media/video/videobuf-core + kernel/drivers/media/video/videobuf-dma-sg + kernel/drivers/media/video/videobuf-vmalloc + kernel/drivers/misc/sgi-gru/gru + kernel/drivers/mtd/chips/chipreg + kernel/drivers/mtd/maps/map_funcs + kernel/drivers/mtd/mtd + kernel/drivers/mtd/nand/nand + kernel/drivers/mtd/nand/nand_ecc + kernel/drivers/mtd/nand/nand_ids + kernel/drivers/net/wan/hdlc + kernel/drivers/scsi/device_handler/scsi_dh + kernel/drivers/ssb/ssb + kernel/drivers/usb/atm/usbatm + kernel/drivers/usb/misc/phidget + kernel/drivers/video/fb_ddc + kernel/drivers/video/fb_sys_fops + kernel/drivers/video/output + kernel/drivers/video/syscopyarea + kernel/drivers/video/sysfillrect + kernel/drivers/video/sysimgblt + kernel/fs/jbd2/jbd2 + kernel/fs/ocfs2/ocfs2_stackglue + kernel/lib/crc-itu-t + kernel/net/802/garp + kernel/net/802/stp + kernel/net/atm/atm + kernel/net/ieee80211/ieee80211 + kernel/net/ieee80211/ieee80211_crypt + kernel/net/ipv4/tunnel4 + kernel/net/ipv6/tunnel6 + kernel/net/rfkill/rfkill + kernel/net/xfrm/xfrm_ipcomp + kernel/sound/ac97_bus + kernel/sound/i2c/other/snd-pt2258 + kernel/sound/sound_firmware ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@Hilbert.suse.de