2019-11-12 02:06:06 +03:00
|
|
|
# _get_email() in %%build contains bashisms for regexping
|
2022-03-09 19:02:02 +01:00
|
|
|
%define _buildshell /bin/bash
|
2019-11-12 02:06:06 +03:00
|
|
|
|
2020-05-11 09:35:25 +03:00
|
|
|
# brp-python-bytecompile uses /usr/bin/python,
|
|
|
|
# but it is a different python version in different ROSA
|
|
|
|
# releases; there is no good way to tell brp-python-bytecompile
|
|
|
|
# which iterpreter to use; so just disable it to avoid problems
|
2022-03-09 19:02:02 +01:00
|
|
|
%define _python_bytecompile_build 0
|
2020-05-11 09:35:25 +03:00
|
|
|
|
2020-06-19 23:42:50 +03:00
|
|
|
# Probably dwz bug, on i686 only file is not packaged:
|
|
|
|
# /usr/lib/debug/usr/bin/trace-5.4.40-3.i386.debug.#dwz#.b5xuKG
|
|
|
|
# dwz compresses only debuginfo from perf, cpupower, uml,
|
|
|
|
# not the kernel itself (because it is stripped not by RPM),
|
|
|
|
# so we do not loose much by disabling it.
|
2022-03-09 19:02:02 +01:00
|
|
|
%global _find_debuginfo_dwz_opts %{nil}
|
2020-06-19 23:42:50 +03:00
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
# Put everything into one non-standard debuginfo subpackage
|
|
|
|
# TODO: make multiple debuginfo packages coinstallable as installonlypkg,
|
|
|
|
# to achive this, there must be no conflicting files.
|
|
|
|
# Probably signing and compressing of kernel modules
|
|
|
|
# has to be moved to %%_spec_install_post.
|
2022-03-09 19:02:02 +01:00
|
|
|
%global _debuginfo_subpackages %{nil}
|
|
|
|
%global _debuginfo_template %{nil}
|
|
|
|
%undefine _debugsource_packages
|
2021-05-03 15:56:13 +03:00
|
|
|
|
|
|
|
# Hack: flavour and major version are variable, make %%_build_pkgcheck_* always detect and use this config
|
2022-03-09 19:02:02 +01:00
|
|
|
%global _build_pkgcheck_set %(echo "%{_build_pkgcheck_set}" | sed -e 's,/%{name}.rpmlintrc,/kernel.rpmlintrc,')
|
|
|
|
%global _build_pkgcheck_srpm %(echo "%{_build_pkgcheck_srpm}" | sed -e 's,/%{name}.rpmlintrc,/kernel.rpmlintrc,')
|
2021-05-03 15:56:13 +03:00
|
|
|
|
2022-08-21 16:12:54 +03:00
|
|
|
%define kernelversion 5
|
|
|
|
%define patchlevel 15
|
[bot] upd: 5.15.67 -> 5.15.71
Changelog:
ACPI: resource: skip IRQ override on AMD Zen platforms
afs: Return -EAGAIN, not -EREMOTEIO, when a file already locked
afs: Use the operation issue time instead of the reply time for callbacks
ALSA: aloop: Fix random zeros in capture data when using jiffies timer
ALSA: core: Fix double-free at snd_card_new()
ALSA: emu10k1: Fix out of bounds access in snd_emu10k1_pcm_channel_alloc()
ALSA: hda: add Intel 5 Series / 3400 PCI DID
ALSA: hda/realtek: Add pincfg for ASUS G513 HP jack
ALSA: hda/realtek: Add pincfg for ASUS G533Z HP jack
ALSA: hda/realtek: Add quirk for ASUS GA503R laptop
ALSA: hda/realtek: Add quirk for Huawei WRT-WX9
ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5530 laptop
ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5570 laptop
ALSA: hda/realtek: Re-arrange quirk table entries
ALSA: hda/sigmatel: Fix unused variable warning for beep power change
ALSA: hda/sigmatel: Keep power up while beep is enabled
ALSA: hda/tegra: Align BDL entry to 4KB boundary
ALSA: hda/tegra: set depop delay for tegra
ALSA: pcm: oss: Fix race at SNDCTL_DSP_SYNC
ALSA: usb-audio: Fix an out-of-bounds bug in __snd_usb_parse_audio_interface()
ALSA: usb-audio: Inform the delayed registration more properly
ALSA: usb-audio: Register card again for iface over delayed_register option
ALSA: usb-audio: Split endpoint setups for hw_params and prepare
arm64/bti: Disable in kernel BTI when cross section thunks are broken
arm64: cacheinfo: Fix incorrect assignment of signed error value to unsigned fw_level
arm64: dts: juno: Add missing MHU secure-irq
arm64: dts: rockchip: Fix typo in lisense text for PX30.Core
arm64: dts: rockchip: Pull up wlan wake# on Gru-Bob
arm64: dts: rockchip: Remove 'enable-active-low' from rk3399-puma
arm64: dts: rockchip: Set RK3399-Gru PCLK_EDP to 24 MHz
arm64: errata: add detection for AMEVCNTR01 incrementing incorrectly
arm64: topology: fix possible overflow in amu_fie_setup()
ARM: at91: ddr: remove CONFIG_SOC_SAMA7 dependency
ARM: at91: pm: fix DDR recalibration when resuming from backup and self-refresh
ARM: at91: pm: fix self-refresh for sama7g5
ARM: dts: at91: fix low limit for CPU regulator
ARM: dts: at91: sama5d27_wlsom1: don't keep ldo2 enabled all the time
ARM: dts: at91: sama5d27_wlsom1: specify proper regulator output ranges
ARM: dts: at91: sama5d2_icp: don't keep vdd_other enabled all the time
ARM: dts: at91: sama5d2_icp: specify proper regulator output ranges
ARM: dts: at91: sama7g5ek: specify proper regulator output ranges
ARM: dts: imx6qdl-kontron-samx6i: fix spi-flash compatible
ARM: dts: imx6qdl-kontron-samx6i: remove duplicated node
ARM: dts: imx: align SPI NOR node name with dtschema
ASoC: mchp-spdiftx: Fix clang -Wbitfield-constant-conversion
ASoC: mchp-spdiftx: remove references to mchp_i2s_caps
ASoC: nau8824: Fix semaphore unbalance at error paths
ASoC: qcom: sm8250: add missing module owner
binder: remove inaccurate mmap_assert_locked()
block: blk_queue_enter() / __bio_queue_enter() must return -EAGAIN for nowait
bnxt: prevent skb UAF after handing over to PTP worker
bonding: fix NULL deref in bond_rr_gen_slave_id
btrfs: fix hang during unmount when stopping a space reclaim worker
btrfs: fix hang during unmount when stopping block group reclaim worker
btrfs: zoned: set pseudo max append zone limit in zone emulation mode
can: flexcan: flexcan_mailbox_read() fix return value for drop = true
can: gs_usb: gs_can_open(): fix race dev->can.state condition
cgroup: Add missing cpus_read_lock() to cgroup_attach_task_all()
cgroup: Elide write-locking threadgroup_rwsem when updating csses on an empty subtree
cgroup: Fix threadgroup_rwsem <-> cpus_read_lock() deadlock
cifs: always initialize struct msghdr smb_msg completely
cifs: don't send down the destination address to sendmsg for a SOCK_STREAM
cifs: revalidate mapping when doing direct writes
cpufreq: check only freq_table in __resolve_freq()
debugfs: add debugfs_lookup_and_remove()
devdax: Fix soft-reservation memory description
dmaengine: ti: k3-udma-private: Fix refcount leak bug in of_xudma_dev_get()
drivers/base: Fix unsigned comparison to -1 in CPUMAP_FILE_MAX_BYTES
Drivers: hv: Never allocate anything besides framebuffer from framebuffer memory region
drm/amd/amdgpu: fixing read wrong pf2vf data in SRIOV
drm/amd/amdgpu: skip ucode loading if ucode_size == 0
drm/amd/display: fix memory leak when using debugfs_lookup()
drm/amd/display: Limit user regamma to a valid value
drm/amd/display: Mark dml30's UseMinimumDCFCLK() as noinline for stack usage
drm/amd/display: Reduce number of arguments of dml31's CalculateFlipSchedule()
drm/amd/display: Reduce number of arguments of dml31's CalculateWatermarksAndDRAMSpeedChangeSupport()
drm/amdgpu: Check num_gfx_rings for gfx v9_0 rb setup.
drm/amdgpu: Don't enable LTR if not supported
drm/amdgpu: don't register a dirty callback for non-atomic
drm/amdgpu: make sure to init common IP before gmc
drm/amdgpu: mmVM_L2_CNTL3 register not initialized correctly
drm/amdgpu: move nbio ih_doorbell_range() into ih code for vega
drm/amdgpu: move nbio sdma_doorbell_range() into sdma code for vega
drm/amdgpu: Move psp_xgmi_terminate call from amdgpu_xgmi_remove_device to psp_hw_fini
drm/amdgpu: Separate vf2pf work item init from virt data exchange
drm/amdgpu: use dirty framebuffer helper
drm/amd/pm: disable BACO entry/exit completely on several sienna cichlid cards
drm/bridge: display-connector: implement bus fmts callbacks
drm/gem: Fix GEM handle release errors
drm/gma500: Fix BUG: sleeping function called from invalid context errors
drm/hisilicon: Add depends on MMU
drm/hisilicon/hibmc: Allow to be built if COMPILE_TEST is enabled
drm/i915: Implement WaEdpLinkRateDataReload
drm/mediatek: dsi: Add atomic {destroy,duplicate}_state, reset callbacks
drm/mediatek: dsi: Move mtk_dsi_stop() call back to mtk_dsi_poweroff()
drm/meson: Correct OSD1 global alpha value
drm/meson: Fix OSD1 RGB to YCbCr coefficient
drm/msm/rd: Fix FIFO-full deadlock
drm/panel: simple: Fix innolux_g121i1_l01 bus_format
drm/panfrost: devfreq: set opp to the recommended one to configure regulator
drm/radeon: add a force flush to delay work when radeon
drm/rockchip: Fix return type of cdn_dp_connector_mode_valid
drm/tegra: vic: Fix build warning when CONFIG_PM=n
dt-bindings: iio: gyroscope: bosch,bmg160: correct number of pins
efi: capsule-loader: Fix use-after-free in efi_capsule_write
efi: libstub: check Shim mode using MokSBStateRT
efi: libstub: Disable struct randomization
efi: x86: Wipe setup_data on pure EFI boot
erofs: fix pcluster use-after-free on UP platforms
ext4: avoid unnecessary spreading of allocations among groups
ext4: fix bug in extents parsing when eh_entries == 0 and eh_depth > 0
ext4: limit the number of retries after discarding preallocations blocks
ext4: make directory inode spreading reflect flexbg size
ext4: make mballoc try target group first even with mb_optimize_scan
ext4: use locality group preallocation for small closed files
fbdev: chipsfb: Add missing pci_disable_device() in chipsfb_pci_init()
fbdev: fbcon: Destroy mutex on freeing struct fb_info
firmware: arm_scmi: Fix the asynchronous reset requests
firmware: arm_scmi: Harden accesses to the reset domains
fsdax: Fix infinite loop in dax_iomap_rw()
fs: only do a memory barrier for the first set_buffer_uptodate()
gpiolib: cdev: Set lineevent_state::irq after IRQ register successfully
gpio: mockup: fix NULL pointer dereference when removing debugfs
gpio: mockup: Fix potential resource leakage when register a chip
gpio: mockup: remove gpio debugfs when remove device
gpio: mpc8xxx: Fix support for IRQ_TYPE_LEVEL_LOW flow_type in mpc85xx
hid: intel-ish-hid: ishtp: Fix ishtp client sending disordered message
HID: ishtp-hid-clientHID: ishtp-hid-client: Fix comment typo
hwmon: (mr75203) enable polling for all VM channels
hwmon: (mr75203) fix multi-channel voltage reading
hwmon: (mr75203) fix VM sensor allocation when "intel,vm-map" not defined
hwmon: (mr75203) fix voltage equation for negative source input
hwmon: (mr75203) update pvt->v_num and vm_num to the actual number of used sensors
hwmon: (tps23861) fix byte order in resistance register
i2c: imx: If pm_runtime_get_sync() returned 1 device access is possible
i2c: mlxbf: Fix frequency calculation
i2c: mlxbf: incorrect base address passed during io write
i2c: mlxbf: prevent stack overflow in mlxbf_i2c_smbus_start_transaction()
i40e: Fix ADQ rate limiting for PF
i40e: Fix kernel crash during module removal
i40e: Fix set max_tx_rate when it is lower than 1 Mbps
i40e: Fix VF set max MTU size
i40e: Refactor tc mqprio checks
iavf: Detach device during reset task
iavf: Fix bad page state
iavf: Fix cached head and tail value for iavf_get_tx_pending
iavf: Fix set max MTU size with port VLAN and jumbo frames
IB/core: Fix a nested dead lock as part of ODP flow
ice: Don't double unplug aux on peer initiated reset
ice: use bitmap_free instead of devm_kfree
ieee802154: cc2520: add rc code in cc2520_tx()
Input: goodix - add compatible string for GT1158
Input: goodix - add support for GT1158
Input: iforce - add support for Boeder Force Feedback Wheel
iommu/amd: use full 64-bit value in build_completion_wait()
iommu/vt-d: Check correct capability for sagaw determination
iommu/vt-d: Correctly calculate sagaw value of IOMMU
iommu/vt-d: Fix kdump kernels boot failure with scalable mode
ipv6: sr: fix out-of-bounds read when setting HMAC data.
ipvlan: Fix out-of-bound bugs caused by unset skb->mac_header
kasan: call kasan_malloc() from __kmalloc_*track_caller()
kbuild: disable header exports for UML in a straightforward way
kprobes: Prohibit probes in gate area
KVM: SEV: add cache flush to solve SEV cache incoherency issues
KVM: x86: Inject #UD on emulated XSETBV if XSAVES isn't enabled
KVM: x86/mmu: Fold rmap_recycle into rmap_add
lockdep: Fix -Wunused-parameter for _THIS_IP_
md: Flush workqueue md_rdev_misc_wq in md_alloc()
media: flexcop-usb: fix endpoint type check
MIPS: lantiq: export clk_get_io() for lantiq_wdt.ko
MIPS: Loongson32: Fix PHY-mode being left unspecified
MIPS: loongson32: ls1c: Fix hang during startup
MIPS: OCTEON: irq: Fix octeon_irq_force_ciu_mapping()
mksysmap: Fix the mismatch of 'L0' symbols in System.map
mlxbf_gige: clear MDIO gateway lock after read
mm: Fix TLB flush for not-first PFNMAP mappings in unmap_region()
mm: slub: fix flush_cpu_slab()/__free_slab() invocations in task context.
mm/slub: fix to return errno if kmalloc() fails
net: bonding: Share lacpdu_mcast_addr definition
net: bonding: Unsync device addresses on ndo_stop
net: core: fix flow symmetric hash
net/core/skbuff: Check the return value of skb_copy_bits()
net: dsa: hellcreek: Print warning only once
net: enetc: deny offload of tc-based TSN features on VF interfaces
net: enetc: move enetc_set_psfp() out of the common enetc_set_features()
netfilter: br_netfilter: Drop dst references before setting.
netfilter: conntrack: work around exceeded receive window
netfilter: ebtables: fix memory leak when blob is malformed
netfilter: nf_conntrack_irc: Fix forged IP logic
netfilter: nf_conntrack_irc: Tighten matching on DCC message
netfilter: nf_conntrack_sip: fix ct_sip_walk_headers
netfilter: nfnetlink_osf: fix possible bogus match in nf_osf_find()
netfilter: nf_tables: clean up hook list when offload flags check fails
netfilter: nf_tables: fix nft_counters_enabled underflow at nf_tables_addchain()
netfilter: nf_tables: fix percpu memory leak at nf_tables_addchain()
net: Find dst with sk's xfrm policy not ctl_sk
net: introduce __skb_fill_page_desc_noacc
net: ipa: properly limit modem routing table use
net: mana: Add rmb after checking owner bits
net: phy: aquantia: wait for the suspend/resume operations to finish
net: ravb: Fix PHY state warning splat during system resume
net: sched: fix possible refcount leak in tc_new_tfilter()
net/sched: taprio: avoid disabling offload when it was never enabled
net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child qdiscs
net: sh_eth: Fix PHY state warning splat during system resume
net/smc: Stop the CLC flow if no link to map buffers on
net: sunhme: Fix packet reception for len < RX_COPY_THRESHOLD
net: team: Unsync device addresses on ndo_stop
net: usb: qmi_wwan: add Quectel RM520N
net: wwan: iosm: remove pointless null check
NFS: Fix another fsync() issue after a server reboot
NFS: Fix WARN_ON due to unionization of nfs_inode.nrequests
NFS: Further optimisations for 'ls -l'
NFS: Save some space in the inode
NFSv4: Fixes for nfs4_inode_return_delegation()
NFSv4: Turn off open-by-filehandle and NFS re-export for NFSv4.0
nvme-tcp: fix regression that causes sporadic requests to time out
nvme-tcp: fix UAF when detecting digest errors
nvmet: fix a use-after-free
nvmet: fix mar and mor off-by-one errors
nvmet-tcp: fix unhandled tcp states in nvmet_tcp_state_change()
of/device: Fix up of_dma_configure_id() stub
of: fdt: fix off-by-one error in unflatten_dt_nodes()
of: mdio: Add of_node_put() when breaking out of for_each_xx
parisc: Add runtime check to prevent PA2.0 kernels on PA1.x machines
parisc: Allow CONFIG_64BIT with ARCH=parisc
parisc: ccio-dma: Add missing iounmap in error path in ccio_probe()
parisc: ccio-dma: Handle kmalloc failure in ccio_init_resources()
perf/arm_pmu_platform: fix tests for platform_get_irq() failure
perf jit: Include program header in ELF files
perf kcore_copy: Do not check /proc/modules is unchanged
perf machine: Use path__join() to compose a path instead of snprintf(dir, '/', filename)
perf script: Fix Cannot print 'iregs' field for hybrid systems
perf stat: Fix BPF program section name
perf tools: Honor namespace when synthesizing build-ids
pinctrl: qcom: sc8180x: Fix gpio_wakeirq_map
pinctrl: qcom: sc8180x: Fix wrong pin numbers
pinctrl: rockchip: Enhance support for IRQ_TYPE_EDGE_BOTH
pinctrl: sunxi: Fix name for A100 R_PIO
platform/surface: aggregator_registry: Add support for Surface Laptop Go 2
platform/x86: acer-wmi: Acer Aspire One AOD270/Packard Bell Dot keymap fixes
RDMA/cma: Fix arguments order in net device validation
RDMA/hns: Fix supported page size
RDMA/hns: Fix wrong fixed value of qp->rq.wqe_shift
RDMA/irdma: Report RNR NAK generation in device caps
RDMA/irdma: Report the correct max cqes from query device
RDMA/irdma: Return correct WC error for bind operation failure
RDMA/irdma: Use s/g array in post send only when its valid
RDMA/mlx5: Set local port to one when accessing counters
RDMA/rtrs-clt: Use the right sg_cnt after ib_dma_map_sg
RDMA/rtrs-srv: Pass the correct number of entries for dma mapped SGL
RDMA/siw: Pass a pointer to virt_to_page()
RDMA/srp: Set scmnd->result only when scmnd is not NULL
regulator: core: Clean up on enable failure
regulator: pfuze100: Fix the global-out-of-bounds access in pfuze100_regulator_probe()
Revert "ALSA: usb-audio: Split endpoint setups for hw_params and prepare"
Revert "arm64: kasan: Revert "arm64: mte: reset the page tag in page->flags""
Revert "mm: kmemleak: take a full lowmem check in kmemleak_*_phys()"
Revert "net: phy: meson-gxl: improve link-up behavior"
Revert "parisc: Show error if wrong 32/64-bit compiler is being used"
Revert "usb: add quirks for Lenovo OneLink+ Dock"
Revert "usb: gadget: udc-xilinx: replace memcpy with memcpy_toio"
riscv: fix a nasty sigreturn bug...
rxrpc: Fix an insufficiently large sglist in rxkad_verify_packet_2()
rxrpc: Fix calc of resend age
rxrpc: Fix ICMP/ICMP6 error handling
rxrpc: Fix local destruction being repeated
s390/boot: fix absolute zero lowcore corruption on boot
s390/dasd: fix Oops in dasd_alias_get_start_dev due to missing pavgroup
sched/debug: fix dentry leak in update_sched_domain_debugfs
sch_sfb: Also store skb len before calling child enqueue
sch_sfb: Don't assume the skb is still around after enqueueing to child
scsi: lpfc: Add missing destroy_workqueue() in error path
scsi: lpfc: Return DID_TRANSPORT_DISRUPTED instead of DID_REQUEUE
scsi: megaraid_sas: Fix double kfree()
scsi: mpt3sas: Fix return value check of dma_get_required_mask()
scsi: mpt3sas: Fix use-after-free warning
scsi: qla2xxx: Disable ATIO interrupt coalesce for quad port ISP27XX
scsi: qla2xxx: Fix memory leak in __qlt_24xx_handle_abts()
scsi: ufs: core: Reduce the power mode change timeout
selftests: forwarding: add shebang for sch_red.sh
serial: atmel: remove redundant assignment in rs485_config
serial: Create uart_xmit_advance()
serial: fsl_lpuart: Reset prior to registration
serial: tegra-tcu: Use uart_xmit_advance(), fixes icount.tx accounting
serial: tegra: Use uart_xmit_advance(), fixes icount.tx accounting
sfc: fix null pointer dereference in efx_hard_start_xmit
sfc: fix TX channel offset when using legacy interrupts
soc: brcmstb: pm-arm: Fix refcount leak and __iomem leak bugs
soc: fsl: select FSL_GUTS driver for DPIO
soc: imx: gpcv2: Assert reset before ungating clock
staging: r8188eu: Add Rosewill USB-N150 Nano to device tables
staging: r8188eu: Remove support for devices with 8188FU chipset (0bda:f179)
swiotlb: avoid potential left shift overflow
task_stack, x86/cea: Force-inline stack helpers
tcp: fix early ETIMEDOUT after spurious non-SACK RTO
tcp: TX zerocopy should not sense pfmemalloc status
tee: fix compiler warning in tee_shm_register()
tg3: Disable tg3 device on system reboot to avoid triggering AER
thunderbolt: Add support for Intel Maple Ridge single port controller
tipc: fix shift wrapping bug in map_get()
tools/include/uapi: Fix <asm/errno.h> for parisc and xtensa
tracefs: Only clobber mode/uid/gid on remount if asked
tracing: Fix to check event_mutex is held while accessing trigger list
tracing: hold caller_addr to hardirq_{enable,disable}_ip
tty: serial: atmel: Preserve previous USART mode if RS485 disabled
um: fix default console kernel parameter
usb: add quirks for Lenovo OneLink+ Dock
USB: core: Fix RST error in hub.c
usb: dwc3: core: leave default DMA if the controller does not support 64-bit DMA
usb: dwc3: gadget: Avoid duplicate requests to enable Run/Stop
usb: dwc3: gadget: Avoid starting DWC3 gadget during UDC unbind
usb: dwc3: gadget: Don't modify GEVNTCOUNT in pullup()
usb: dwc3: gadget: Prevent repeat pullup()
usb: dwc3: gadget: Refactor pullup()
usb: dwc3: Issue core soft reset before enabling run/stop
usb: gadget: f_uac2: clean up some inconsistent indenting
usb: gadget: f_uac2: fix superspeed transfer
usb: gadget: udc-xilinx: replace memcpy with memcpy_toio
USB: serial: option: add Quectel BG95 0x0203 composition
USB: serial: option: add Quectel RM520N
usb: storage: Add ASUS <0x0b05:0x1932> to IGNORE_UAS
vfio/type1: Unpin zero pages
video: fbdev: i740fb: Error out if 'pixclock' equals zero
video: fbdev: pxa3xx-gcu: Fix integer overflow in pxa3xx_gcu_write
vmlinux.lds.h: CFI: Reduce alignment of jump-table to function alignment
wifi: iwlegacy: 4965: corrected fix for potential off-by-one overflow in il4965_rs_fill_link_cmd()
wifi: mac80211_hwsim: check length for virtio packets
wifi: mt76: fix reading current per-tid starting sequence number for aggregation
wifi: wilc1000: fix DMA on stack objects
wireguard: netlink: avoid variable-sized memcpy on sockaddr
wireguard: ratelimiter: disable timings test by default
workqueue: don't skip lockdep work dependency in cancel_work_sync()
x86/mm: Force-inline __phys_addr_nodebug()
xen-netback: only remove 'hotplug-status' when the vif is actually destroyed
xfs: fix xfs_ifree() error handling to not leak perag ref
xfs: reorder iunlink remove operation in xfs_ifree
xfs: validate inode fork size against fork format
Updated by kernel-updater-bot (https://abf.io/mikhailnov/kernel-updater-bot)
2022-10-04 16:50:37 +03:00
|
|
|
%define sublevel 71
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2016-07-22 22:05:03 +03:00
|
|
|
# Release number. Increase this before a rebuild.
|
2022-10-05 09:11:10 +03:00
|
|
|
%define rpmrel 2
|
2022-08-21 16:12:54 +03:00
|
|
|
%define fullrpmrel %{rpmrel}
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2022-08-21 16:12:54 +03:00
|
|
|
%define rpmtag %{disttag}
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Version defines
|
2022-08-21 16:12:54 +03:00
|
|
|
%define kversion %{kernelversion}.%{patchlevel}.%{sublevel}
|
|
|
|
%define kverrel %{kversion}-%{fullrpmrel}
|
|
|
|
%define tar_ver %{kernelversion}.%{patchlevel}
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2015-03-16 18:42:29 +03:00
|
|
|
%ifarch %{ix86}
|
2022-03-30 09:04:46 +03:00
|
|
|
%define arch_suffix i686
|
2020-11-26 21:09:27 +00:00
|
|
|
%endif
|
|
|
|
|
|
|
|
%ifarch %{x86_64}
|
2022-03-09 19:02:02 +01:00
|
|
|
%define arch_suffix x86_64
|
2015-03-16 18:42:29 +03:00
|
|
|
%endif
|
|
|
|
|
2020-11-26 21:09:27 +00:00
|
|
|
%ifarch aarch64
|
2022-03-09 19:02:02 +01:00
|
|
|
%define arch_suffix arm64
|
2020-11-26 21:09:27 +00:00
|
|
|
%endif
|
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
%define buildrpmrel %{fullrpmrel}%{rpmtag}-%{arch_suffix}
|
|
|
|
%define buildrel %{kversion}-%{buildrpmrel}
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2020-12-30 19:47:16 +03:00
|
|
|
# Add not only the build time generated key to the trusted keyring,
|
|
|
|
# but also add public keys of private ROSA's keys
|
2022-03-09 19:02:02 +01:00
|
|
|
%bcond_without additional_keys
|
2020-12-30 19:47:16 +03:00
|
|
|
|
2021-05-22 12:08:22 +03:00
|
|
|
# Fail the build after "make oldconfig" to edit kernel configs
|
2022-03-09 19:02:02 +01:00
|
|
|
%bcond_with fail
|
2021-05-22 12:08:22 +03:00
|
|
|
|
2020-03-13 20:35:12 +03:00
|
|
|
# User Mode Linux, https://habr.com/ru/company/itsumma/blog/459558/
|
2022-07-11 15:56:35 +03:00
|
|
|
# Not buildable on aarch64, rarely needed in general
|
2022-03-09 19:02:02 +01:00
|
|
|
%bcond_with uml
|
2019-11-17 16:56:39 +03:00
|
|
|
|
2020-03-18 22:20:03 +03:00
|
|
|
# "Nickel" is a special brand for certified distros
|
2022-03-17 10:23:10 +03:00
|
|
|
%if %{mdvver} == 201905
|
2022-03-09 19:02:02 +01:00
|
|
|
%bcond_without nickel
|
2020-11-27 01:34:07 +03:00
|
|
|
# Require kernel modules to be signed
|
2022-03-09 19:02:02 +01:00
|
|
|
%bcond_without oblig_signed_modules
|
2020-03-18 22:20:03 +03:00
|
|
|
%else
|
|
|
|
%bcond_with nickel
|
2020-08-06 14:44:29 +03:00
|
|
|
%bcond_with oblig_signed_modules
|
2020-03-18 22:20:03 +03:00
|
|
|
%endif
|
|
|
|
|
2020-07-29 10:59:41 +03:00
|
|
|
%if %{mdvver} >= 201905
|
2020-11-27 01:34:07 +03:00
|
|
|
# Build binary out-of-tree kernel modules (experimental)
|
2022-03-15 17:03:05 +03:00
|
|
|
%bcond_without binary_extra_modules
|
2020-11-27 01:34:07 +03:00
|
|
|
# Sign kernel modules with GOST key (experimental)
|
|
|
|
%bcond_without gost_sign
|
2020-07-29 10:59:41 +03:00
|
|
|
%else
|
|
|
|
%bcond_with binary_extra_modules
|
2020-11-27 01:34:07 +03:00
|
|
|
%bcond_with gost_sign
|
2020-07-29 10:59:41 +03:00
|
|
|
%endif
|
|
|
|
|
2020-07-27 16:53:12 +03:00
|
|
|
%bcond_with ccache
|
2022-03-15 17:03:05 +03:00
|
|
|
%bcond_without flow_abi
|
|
|
|
%bcond_without aufs
|
2020-07-27 16:53:12 +03:00
|
|
|
|
Update from 5.4 to 5.10.1
- rediffed most of patches, renamed files to easify further rediffs by git format-patch
- thanks to abf.io/kernels_stable for some patches for kernel 5.9
- using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much)
- pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD
- dropped patch adding sysctl to disable disk-based swap because it has not found any usage
- bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful
- keeping kernel libc headers in older kernels for now
- dropped building external virtualbox guest modules because they are now included into the mainline kernel
- offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms
- offed building kernel-shredder because it is not buildable on kernel 5.10
- updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0)
It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4.
TODO: update kernel configs
TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
|
|
|
# 1. VirtualBox is for x86_32 and x86_64 only
|
|
|
|
# 2. I do not know how to solve the problem that userspace part of VirtualBox
|
2022-03-15 17:03:05 +03:00
|
|
|
# will be updated ahead of these binary modules. So just off building them.
|
Update from 5.4 to 5.10.1
- rediffed most of patches, renamed files to easify further rediffs by git format-patch
- thanks to abf.io/kernels_stable for some patches for kernel 5.9
- using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much)
- pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD
- dropped patch adding sysctl to disable disk-based swap because it has not found any usage
- bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful
- keeping kernel libc headers in older kernels for now
- dropped building external virtualbox guest modules because they are now included into the mainline kernel
- offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms
- offed building kernel-shredder because it is not buildable on kernel 5.10
- updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0)
It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4.
TODO: update kernel configs
TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
|
|
|
%bcond_with binary_virtualbox_host
|
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Shredder-kernel works only on x86_64, makes manipulations with syscalls tables,
|
Update from 5.4 to 5.10.1
- rediffed most of patches, renamed files to easify further rediffs by git format-patch
- thanks to abf.io/kernels_stable for some patches for kernel 5.9
- using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much)
- pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD
- dropped patch adding sysctl to disable disk-based swap because it has not found any usage
- bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful
- keeping kernel libc headers in older kernels for now
- dropped building external virtualbox guest modules because they are now included into the mainline kernel
- offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms
- offed building kernel-shredder because it is not buildable on kernel 5.10
- updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0)
It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4.
TODO: update kernel configs
TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
|
|
|
# loading/unloading of the module failed sometimes on kernel 5.4
|
|
|
|
# and it has not been adapted for kernel 5.10 (is not buildable)
|
|
|
|
%bcond_with binary_shredder
|
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Compress modules with zstd (zstd is good compression and fast decompression)
|
2022-03-15 17:03:05 +03:00
|
|
|
%bcond_without compress_modules
|
2021-05-03 18:21:14 +03:00
|
|
|
# Spend more resources on compression, but make resulting size less;
|
2021-05-04 15:17:47 +03:00
|
|
|
# decompression speed will not be affected, but more memory will be required
|
|
|
|
# which should not a problem here (performance penalty from allocating more
|
|
|
|
# memory should not be big, I think, but I did not benchmark).
|
2022-03-15 17:03:05 +03:00
|
|
|
%define zstd_cmd zstd -q --format=zstd --ultra -22
|
2022-03-09 19:02:02 +01:00
|
|
|
# Optionally keep using xz as compressor
|
|
|
|
#bcond_without modxz
|
2021-05-03 18:21:14 +03:00
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
# Kernel flavour
|
2020-03-18 22:20:03 +03:00
|
|
|
%if %{with nickel}
|
2022-03-09 19:02:02 +01:00
|
|
|
%define flavour nickel
|
2019-11-11 21:28:45 +03:00
|
|
|
%else
|
2022-03-09 19:02:02 +01:00
|
|
|
%define flavour generic
|
2019-11-11 21:28:45 +03:00
|
|
|
%endif
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
# The full kernel version
|
2022-03-09 19:02:02 +01:00
|
|
|
%define kver_full %{kversion}-%{flavour}-%{buildrpmrel}
|
2021-10-10 16:12:22 +03:00
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
############################################################################
|
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
%define top_dir_name kernel-%{_arch}
|
|
|
|
%define build_dir ${RPM_BUILD_DIR}/%{top_dir_name}
|
|
|
|
%define src_dir %{build_dir}/linux-%{tar_ver}
|
2019-07-16 18:30:53 +03:00
|
|
|
|
|
|
|
# Common target directories
|
2022-03-09 19:02:02 +01:00
|
|
|
%define _bootdir /boot
|
|
|
|
%define _modulesdir /lib/modules
|
|
|
|
%define devel_root /usr/src/linux-%{kver_full}
|
|
|
|
%define initrd_path %{_bootdir}/initrd-%{kver_full}.img
|
Delete old initrds by RPM
After moving to dnf (installonlypkg(kernel)) schema of packaging the kernel,
the %%postun scriptlet stopped working properly because $1 is the number
of packages left after the transaction, and there are multiple
kernels - packages with the same name but of different version/release - left.
Let's just make initrd be %%ghost as Fedora (but increase its size from Fedora's 20 MiB to 65 MiB),
and drop deleting empty directories etc. Recent commit fixed ownership of directories,
now /lib/modules/kernel_version is owned by RPM (it was not), dkms will remove modules
that it built, and, if anything else was left, then let's just not touch it, why must we delete
what we know nothing about?
Also delete scriptlet in the devel subpackage, that scriptlet would probably cause problems
with reinstalling the devel package.
2021-05-24 21:10:00 +03:00
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
# Directories needed for building
|
2022-03-09 19:02:02 +01:00
|
|
|
%define temp_root %{build_dir}/temp-root
|
|
|
|
%define temp_boot %{temp_root}%{_bootdir}
|
|
|
|
%define temp_modules %{temp_root}%{_modulesdir}
|
|
|
|
%define temp_devel_root %{temp_root}%{devel_root}
|
2019-07-16 18:30:53 +03:00
|
|
|
|
|
|
|
# Directories definition needed for installing
|
2022-03-09 19:02:02 +01:00
|
|
|
%define target_boot %{buildroot}%{_bootdir}
|
|
|
|
%define target_modules %{buildroot}%{_modulesdir}
|
2019-11-11 17:47:53 +03:00
|
|
|
|
|
|
|
# Manual control of creating and deleting keys
|
|
|
|
# "rnd" is "random" and means that a key pair is generated at build time
|
|
|
|
# and is not saved anywhere.
|
2022-03-09 19:02:02 +01:00
|
|
|
%define certs_dir_rnd certs
|
|
|
|
%define certs_signing_key_priv_rnd %{certs_dir_rnd}/signing_key_priv.key
|
|
|
|
%define certs_signing_der %{certs_dir_rnd}/signing_key.x509
|
|
|
|
%define certs_key_config_rnd %{certs_dir_rnd}/x509.genkey
|
|
|
|
%define certs_public_keys %{certs_dir_rnd}/public.pem
|
|
|
|
%define certs_verify_tmp %{certs_dir_rnd}/verify.tmp
|
2021-05-03 15:56:13 +03:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
%define kernel_files %{_builddir}/kernel_files.list
|
|
|
|
%define debuginfo_files %{_builddir}/debuginfo_files.list
|
2021-05-03 15:56:13 +03:00
|
|
|
|
|
|
|
# Append list of files generate by find-debuginfo.sh to our custom list
|
2022-03-09 19:02:02 +01:00
|
|
|
%global __debug_install_post \
|
2021-05-03 15:56:13 +03:00
|
|
|
%{__debug_install_post} \
|
|
|
|
cat %{_builddir}/debugfiles.list >> %{debuginfo_files}
|
|
|
|
|
2016-07-29 13:39:16 +03:00
|
|
|
############################################################################
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2022-09-20 14:48:35 +03:00
|
|
|
%if %{with binary_extra_modules}
|
|
|
|
# global instead of define to speed up things
|
|
|
|
# TODO: add nvidia340
|
|
|
|
%global nvidia_390_j %{kroko_j -p kernel-source-nvidia390 -r 390}
|
|
|
|
%global nvidia_390_n %{kroko_n -p kernel-source-nvidia390 -r 390}
|
|
|
|
%global nvidia_470_j %{kroko_j -p kernel-source-nvidia470 -r 470}
|
|
|
|
%global nvidia_470_n %{kroko_n -p kernel-source-nvidia470 -r 470}
|
|
|
|
%global nvidia_510_j %{kroko_j -p kernel-source-nvidia510 -r 510}
|
|
|
|
%global nvidia_510_n %{kroko_n -p kernel-source-nvidia510 -r 510}
|
|
|
|
%global nvidia_515_j %{kroko_j -p kernel-source-nvidia515 -r 515}
|
|
|
|
%global nvidia_515_n %{kroko_n -p kernel-source-nvidia515 -r 515}
|
2021-10-10 16:12:22 +03:00
|
|
|
|
|
|
|
# For SRPM stage when auto-krokodil-rpm-macros is not installed
|
2022-09-20 14:48:35 +03:00
|
|
|
%{?!kroko_mk_release:%global kroko_mk_release(n:) %{nil}}
|
|
|
|
%{?!kroko_req_modules_in_kernel:%global kroko_req_modules_in_kernel(j:n:p:) %{nil}}
|
|
|
|
|
|
|
|
# global, not define, must be expanded only once
|
2022-10-05 05:15:50 +03:00
|
|
|
%global kroko_release %kroko_mk_release -n kernel-%{kernelversion}.%{patchlevel}-%{flavour}
|
2022-09-20 14:48:35 +03:00
|
|
|
|
|
|
|
%endif #/binary_extra_modules
|
2021-10-10 16:12:22 +03:00
|
|
|
|
|
|
|
############################################################################
|
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Buildtime flags
|
2013-11-16 00:27:01 +04:00
|
|
|
%{?_without_doc: %global build_doc 0}
|
|
|
|
%{?_without_devel: %global build_devel 0}
|
|
|
|
%{?_without_debug: %global build_debug 0}
|
|
|
|
%{?_without_perf: %global build_perf 0}
|
|
|
|
%{?_without_cpupower: %global build_cpupower 0}
|
|
|
|
|
|
|
|
%{?_with_doc: %global build_doc 1}
|
|
|
|
%{?_with_devel: %global build_devel 1}
|
|
|
|
%{?_with_debug: %global build_debug 1}
|
|
|
|
%{?_with_perf: %global build_perf 1}
|
|
|
|
%{?_with_cpupower: %global build_cpupower 1}
|
2022-03-15 17:03:05 +03:00
|
|
|
%{?_with_modxz: %global build_modxz 0}
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Build defines
|
2022-03-15 17:03:05 +03:00
|
|
|
%define build_doc 1
|
2022-03-09 19:02:02 +01:00
|
|
|
%define build_devel 1
|
|
|
|
%define build_debug 1
|
|
|
|
|
|
|
|
# Build kernel-headers package
|
2022-05-04 10:07:56 +03:00
|
|
|
%define build_headers 1
|
2022-03-09 19:02:02 +01:00
|
|
|
|
|
|
|
# Build perf and cpupower tools
|
2022-03-15 17:03:05 +03:00
|
|
|
%define build_perf 1
|
2022-03-09 19:02:02 +01:00
|
|
|
%define build_cpupower 1
|
2020-07-29 10:59:41 +03:00
|
|
|
|
2022-03-15 17:03:05 +03:00
|
|
|
%if %{with compress_modules}
|
|
|
|
%if %{with modxz}
|
2022-03-09 19:02:02 +01:00
|
|
|
%define kmod_suffix .xz
|
2022-03-15 17:03:05 +03:00
|
|
|
%else
|
|
|
|
%define kmod_suffix .zst
|
|
|
|
%endif
|
|
|
|
%else
|
|
|
|
%define kmod_suffix %{nil}
|
|
|
|
%endif
|
2022-03-09 19:02:02 +01:00
|
|
|
|
2016-07-21 15:59:26 +03:00
|
|
|
%if !%{build_debug}
|
|
|
|
# Disable debug rpms.
|
2022-03-15 17:03:05 +03:00
|
|
|
%define _enable_debug_packages %{nil}
|
2022-03-09 19:02:02 +01:00
|
|
|
%define debug_package %{nil}
|
2016-07-21 15:59:26 +03:00
|
|
|
%endif
|
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# End of user definitions
|
|
|
|
|
2020-07-27 16:53:12 +03:00
|
|
|
# http://nickdesaulniers.github.io/blog/2018/06/02/speeding-up-linux-kernel-builds-with-ccache/
|
|
|
|
%if %{with ccache}
|
2022-03-09 19:02:02 +01:00
|
|
|
%define kmake KBUILD_BUILD_TIMESTAMP='' %make CC='ccache gcc' ARCH="%{arch_type}"
|
2013-11-16 00:27:01 +04:00
|
|
|
%else
|
2022-03-09 19:02:02 +01:00
|
|
|
%define kmake %make CC='gcc' ARCH="%{arch_type}"
|
2013-11-16 00:27:01 +04:00
|
|
|
%endif
|
2020-07-27 16:53:12 +03:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# There are places where parallel make don't work
|
|
|
|
%define smake make
|
2020-11-26 18:48:55 +00:00
|
|
|
%ifarch %{ix86} %{x86_64}
|
2022-03-09 19:02:02 +01:00
|
|
|
%define arch_type x86
|
2020-11-26 18:48:55 +00:00
|
|
|
%endif
|
2022-03-09 19:02:02 +01:00
|
|
|
%ifarch aarch64
|
|
|
|
%define arch_type arm64
|
2020-11-26 18:48:55 +00:00
|
|
|
%endif
|
|
|
|
|
2013-11-16 00:27:01 +04:00
|
|
|
# Parallelize xargs invocations on smp machines
|
2022-03-09 19:02:02 +01:00
|
|
|
%define kxargs xargs %([ -z "$RPM_BUILD_NCPUS" ] \\\
|
2013-11-16 00:27:01 +04:00
|
|
|
&& RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"; \\\
|
|
|
|
[ "$RPM_BUILD_NCPUS" -gt 1 ] && echo "-P $RPM_BUILD_NCPUS")
|
|
|
|
|
|
|
|
#
|
|
|
|
# SRC RPM description
|
|
|
|
#
|
2022-03-09 19:02:02 +01:00
|
|
|
Summary: The Linux kernel
|
2021-05-03 15:56:13 +03:00
|
|
|
Name: kernel-%{kernelversion}.%{patchlevel}-%{flavour}
|
2022-03-09 19:02:02 +01:00
|
|
|
Version: %{kversion}
|
|
|
|
Release: %{fullrpmrel}
|
|
|
|
License: GPLv2
|
2022-03-15 17:03:05 +03:00
|
|
|
Group: System/Kernel and hardware
|
|
|
|
Url: https://www.kernel.org
|
2013-11-16 00:27:01 +04:00
|
|
|
|
|
|
|
####################################################################
|
|
|
|
#
|
|
|
|
# Sources
|
|
|
|
#
|
2022-03-09 19:02:02 +01:00
|
|
|
Source0: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/linux-%{tar_ver}.tar.xz
|
Revisited the set of kernel flavours and the generation of config files
Until now, the build system for the kernel supported a number of
flavours: nrj and non-nrj ones, desktop-, laptop-, server- and
netbook-oriented, etc.
It turned out over the years, however, that our users mostly need the
following:
* a kernel to use on the desktops (home and office use) with reasonable
default settings for performance and responsiveness;
* a kernel for laptops, with a bit more emphasis on power consumption.
Other variants were rarely used. We also did not have enough time to
properly support all these.
Besides, the kernels for ARM and other architectures need a somewhat
different build process than for x86. So, they are better off to be in
separate ABF projects, even if they are needed. No signs of ROSA on ARM
yet, btw.
So, I kept only nrj-desktop and nrj-laptop flavours and only x86.
Non-PAE systems also seem to be rare now, so I enabled PAE by default
for the 32-bit kernels. Non-PAE kernels are no longer built. If they are
needed, we may use a separate git branch or an ABF project for that.
To simplify debugging, maintenance and experimentation with the kernel
builds further, I revisited the process of preparing the kernel
configuration files. The goal is to get rid of a separate git repo with
the default configs (kernel-patches-and-configs) and keep everything in
this project.
The default config files are now kept here. For x86_64:
* kernel-x86_64.config contains the options for both nrj-desktop and
nrn-laptop flavours;
* kernel-{nrj_desktop|nrj_laptop}-x86_64.config files contain the
flavour-specific options.
This way, it is easier to track which config options changed when,
easier to experiment with the custom configs and so on.
The kernel will be built with debug info if rpmbuild is called with
"--with debug".
2016-07-21 13:56:25 +03:00
|
|
|
|
2013-11-16 00:27:01 +04:00
|
|
|
# This is for disabling *config, mrproper, prepare, scripts on -devel rpms
|
2019-07-16 18:30:53 +03:00
|
|
|
# Needed, because otherwise the -devel won't build correctly.
|
2022-03-09 19:02:02 +01:00
|
|
|
Source2: 0001-disable-mrproper-prepare-scripts-configs-in-devel-rp.patch
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# TODO: Make a separate package "ksobirator" and BR it
|
2020-07-29 10:59:41 +03:00
|
|
|
# after testing these macros properly
|
|
|
|
Source3: macros.ksobirator
|
|
|
|
%{load:%{SOURCE3}}
|
|
|
|
|
Revisited the set of kernel flavours and the generation of config files
Until now, the build system for the kernel supported a number of
flavours: nrj and non-nrj ones, desktop-, laptop-, server- and
netbook-oriented, etc.
It turned out over the years, however, that our users mostly need the
following:
* a kernel to use on the desktops (home and office use) with reasonable
default settings for performance and responsiveness;
* a kernel for laptops, with a bit more emphasis on power consumption.
Other variants were rarely used. We also did not have enough time to
properly support all these.
Besides, the kernels for ARM and other architectures need a somewhat
different build process than for x86. So, they are better off to be in
separate ABF projects, even if they are needed. No signs of ROSA on ARM
yet, btw.
So, I kept only nrj-desktop and nrj-laptop flavours and only x86.
Non-PAE systems also seem to be rare now, so I enabled PAE by default
for the 32-bit kernels. Non-PAE kernels are no longer built. If they are
needed, we may use a separate git branch or an ABF project for that.
To simplify debugging, maintenance and experimentation with the kernel
builds further, I revisited the process of preparing the kernel
configuration files. The goal is to get rid of a separate git repo with
the default configs (kernel-patches-and-configs) and keep everything in
this project.
The default config files are now kept here. For x86_64:
* kernel-x86_64.config contains the options for both nrj-desktop and
nrn-laptop flavours;
* kernel-{nrj_desktop|nrj_laptop}-x86_64.config files contain the
flavour-specific options.
This way, it is easier to track which config options changed when,
easier to experiment with the custom configs and so on.
The kernel will be built with debug info if rpmbuild is called with
"--with debug".
2016-07-21 13:56:25 +03:00
|
|
|
# Kernel configuration files.
|
2020-12-30 19:47:16 +03:00
|
|
|
Source111: kernel-x86_64.config
|
2022-03-30 09:04:46 +03:00
|
|
|
Source112: kernel-i686.config
|
2020-12-30 19:47:16 +03:00
|
|
|
Source113: kernel-arm64.config
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2015-03-17 20:53:12 +03:00
|
|
|
# Cpupower: the service, the config, etc.
|
2022-03-15 17:03:05 +03:00
|
|
|
Source50: cpupower.service
|
|
|
|
Source51: cpupower.config
|
|
|
|
Source52: cpupower-start.sh
|
|
|
|
Source53: cpupower.path
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2022-03-15 17:03:05 +03:00
|
|
|
Source80: kernel.rpmlintrc
|
2019-11-17 16:56:39 +03:00
|
|
|
|
|
|
|
# Additional keys that can be used to sign kernel modules
|
2020-03-20 21:20:38 +03:00
|
|
|
# Generated by https://abf.io/soft/kernel-keys
|
|
|
|
# Source201..206: public_key_GOST_*.pem
|
|
|
|
%{expand:%(for i in `seq 1 6`; do echo "Source$((200+${i})): public_key_GOST_${i}.pem"; done)}
|
|
|
|
# Source207..212: public_key_RSA_*.pem
|
|
|
|
%{expand:%(for i in `seq 7 12`; do echo "Source$((200+${i})): public_key_RSA_${i}.pem"; done)}
|
2019-11-17 16:56:39 +03:00
|
|
|
|
2016-07-26 11:24:24 +03:00
|
|
|
####################################################################
|
Revisited the set of kernel flavours and the generation of config files
Until now, the build system for the kernel supported a number of
flavours: nrj and non-nrj ones, desktop-, laptop-, server- and
netbook-oriented, etc.
It turned out over the years, however, that our users mostly need the
following:
* a kernel to use on the desktops (home and office use) with reasonable
default settings for performance and responsiveness;
* a kernel for laptops, with a bit more emphasis on power consumption.
Other variants were rarely used. We also did not have enough time to
properly support all these.
Besides, the kernels for ARM and other architectures need a somewhat
different build process than for x86. So, they are better off to be in
separate ABF projects, even if they are needed. No signs of ROSA on ARM
yet, btw.
So, I kept only nrj-desktop and nrj-laptop flavours and only x86.
Non-PAE systems also seem to be rare now, so I enabled PAE by default
for the 32-bit kernels. Non-PAE kernels are no longer built. If they are
needed, we may use a separate git branch or an ABF project for that.
To simplify debugging, maintenance and experimentation with the kernel
builds further, I revisited the process of preparing the kernel
configuration files. The goal is to get rid of a separate git repo with
the default configs (kernel-patches-and-configs) and keep everything in
this project.
The default config files are now kept here. For x86_64:
* kernel-x86_64.config contains the options for both nrj-desktop and
nrn-laptop flavours;
* kernel-{nrj_desktop|nrj_laptop}-x86_64.config files contain the
flavour-specific options.
This way, it is easier to track which config options changed when,
easier to experiment with the custom configs and so on.
The kernel will be built with debug info if rpmbuild is called with
"--with debug".
2016-07-21 13:56:25 +03:00
|
|
|
|
2013-11-16 00:27:01 +04:00
|
|
|
# Patches
|
|
|
|
|
2016-07-22 22:05:03 +03:00
|
|
|
# The patch to make kernel x.y.z from x.y.0.
|
2022-03-09 19:02:02 +01:00
|
|
|
Patch1: https://cdn.kernel.org/pub/linux/kernel/v%{kernelversion}.x/patch-%{kversion}.xz
|
2019-07-16 18:30:53 +03:00
|
|
|
|
|
|
|
# Patches from mainline
|
|
|
|
# none
|
2022-03-09 19:02:02 +01:00
|
|
|
Patch2: kernel-5.10.93-fix-perf-build.patch
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2016-07-26 11:24:24 +03:00
|
|
|
# ROSA-specific patches
|
|
|
|
|
|
|
|
# Perf docs are built after all the kernels. To validate the xml files
|
|
|
|
# generated during that process, xmlto tries to get DTD files from the Net.
|
|
|
|
# If it fails, the whole build fails, which is unfortunate. Let us avoid
|
|
|
|
# this.
|
2022-03-15 17:03:05 +03:00
|
|
|
Patch101: 0001-perf-skip-xmlto-validation.patch
|
2016-07-26 11:24:24 +03:00
|
|
|
|
|
|
|
# http://bugs.rosalinux.ru/show_bug.cgi?id=6235
|
|
|
|
# http://bugs.rosalinux.ru/show_bug.cgi?id=6459
|
2022-03-15 17:03:05 +03:00
|
|
|
Patch102: 0001-audit-make-it-less-verbose.patch
|
2016-07-26 11:24:24 +03:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
%if %{with aufs}
|
2020-08-18 08:02:38 +03:00
|
|
|
# AUFS 5 from http://aufs.sourceforge.net/
|
2022-03-15 17:03:05 +03:00
|
|
|
Patch109: 0001-Apply-AUFS-5.patch
|
2022-03-09 19:02:02 +01:00
|
|
|
%endif
|
2019-12-07 21:57:55 +03:00
|
|
|
|
2020-06-18 18:38:30 +03:00
|
|
|
# For kmod() generator of RPM Provides
|
|
|
|
# Changes version of aacraid.ko
|
2022-03-15 17:03:05 +03:00
|
|
|
Patch111: 0001-Remove-RPM-illegal-chars-from-module-version.patch
|
2020-06-18 18:38:30 +03:00
|
|
|
|
2020-03-16 23:19:46 +03:00
|
|
|
# AltHa LSM Module
|
|
|
|
# https://www.altlinux.org/AltHa
|
|
|
|
# http://git.altlinux.org/gears/k/kernel-image-un-def.git
|
|
|
|
# TODO: known problem: https://bugzilla.altlinux.org/show_bug.cgi?id=38225
|
2022-03-17 10:23:10 +03:00
|
|
|
Patch201: 0001-altha.patch
|
2020-03-16 23:19:46 +03:00
|
|
|
|
2020-03-20 11:27:35 +03:00
|
|
|
# sent to upstream, https://patchwork.kernel.org/patch/11446123/
|
2022-03-15 17:03:05 +03:00
|
|
|
Patch302: 0001-sign-file-full-functionality-with-modern-LibreSSL.patch
|
2020-08-06 14:30:23 +03:00
|
|
|
# Support loading GOST-signed modules
|
2022-03-15 17:03:05 +03:00
|
|
|
Patch305: 0001-crypto-support-loading-GOST-signed-kernel-modules.patch
|
2020-08-10 10:44:43 +03:00
|
|
|
# Allow to off modules signature check dynamically
|
2022-03-15 17:03:05 +03:00
|
|
|
Patch306: 0001-ROSA-ima-allow-to-off-modules-signature-check-dynami.patch
|
2020-12-27 15:49:15 +03:00
|
|
|
# Experimental patch to reduce freezes in low memory conditions
|
|
|
|
# Config values are the following:
|
|
|
|
# CONFIG_UNEVICTABLE_ACTIVEFILE=y
|
|
|
|
# CONFIG_UNEVICTABLE_ACTIVEFILE_KBYTES_LOW=102400 (100 MB)
|
|
|
|
# CONFIG_UNEVICTABLE_ACTIVEFILE_KBYTES_MIN=51200 (50 MB)
|
|
|
|
# + zswap is enabled by default
|
|
|
|
# 50 MB is default value of min_filelist_kbytes in Chromium OS
|
|
|
|
# https://chromium.googlesource.com/chromiumos/third_party/kernel-next/+/545e2917dbd863760a51379de8c26631e667c563%5E!/
|
|
|
|
# 256 and 512 MB values are too big as a distro default because many systems have 512MB-2GB RAM
|
|
|
|
# TODO: tune 50 and 100 MB to some not random and mathemetically explainable values
|
2020-12-26 19:53:02 +03:00
|
|
|
# https://www.linux.org.ru/news/kernel/16052362?cid=16075323
|
2022-03-15 17:03:05 +03:00
|
|
|
Patch307: le9pf.diff
|
|
|
|
Patch308: 0001-Revert-kallsyms-unexport-kallsyms_lookup_name-and-ka.patch
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2022-09-07 12:55:51 +03:00
|
|
|
# Support sound on notebook Aquarius NS685U R11 (https://linux-hardware.org/?probe=339dc3db60)
|
2022-09-07 14:24:27 +03:00
|
|
|
# First 2 patches are from Aquarius.
|
|
|
|
# The next ones are cherry-picked commits from v5.16+, all commits except 19aed2d6cd from:
|
|
|
|
# https://github.com/torvalds/linux/commits/0066f1b0e/sound/soc/intel/boards/sof_es8336.c
|
2022-09-07 12:55:51 +03:00
|
|
|
# Also needed to make sound work:
|
|
|
|
# 1) alsa-ucm-conf (SRPM alsa-lib) (ucm2/Intel/sof-essx8336/HiFi.conf) also has to be patched
|
|
|
|
# https://abf.io/import/alsa-lib/commit/0cc7a15f10ef20dbedba94c14ef614a8c64c1882
|
|
|
|
# 2) firmware sof-cml-es8336.tplg is added into alsa-sof-firmware
|
|
|
|
# https://abf.io/import/alsa-sof-firmware/commit/6fa57e82492d3ddede7af7b78aeeb5a0c230db4b
|
2022-09-07 14:24:27 +03:00
|
|
|
Patch0400: 0400-ASoC-es8316-Add-power-management.patch
|
|
|
|
Patch0401: 0401-ASoC-es8316-Use-increased-GPIO-debounce-time.patch
|
|
|
|
Patch0402: 0402-ASoC-Intel-add-machine-driver-for-SOF-ES8336.patch
|
|
|
|
Patch0403: 0403-ASoC-Intel-sof_es8336-add-quirk-for-Huawei-D15-2021.patch
|
|
|
|
Patch0404: 0404-ASoC-Intel-sof_es8336-make-gpio-optional.patch
|
|
|
|
Patch0405: 0405-ASoC-Intel-sof_es8336-get-codec-device-with-ACPI-ins.patch
|
|
|
|
Patch0406: 0406-ASoC-Intel-Revert-ASoC-Intel-sof_es8336-add-quirk-fo.patch
|
|
|
|
Patch0407: 0407-ASoC-Intel-sof_es8336-use-NHLT-information-to-set-dm.patch
|
|
|
|
Patch0408: 0408-ASoC-Intel-sof_es8336-log-all-quirks.patch
|
|
|
|
Patch0409: 0409-ASoC-Intel-sof_es8336-move-comment-to-the-right-plac.patch
|
|
|
|
Patch0410: 0410-ASoC-Intel-sof_es8336-add-support-for-JD-inverted-qu.patch
|
|
|
|
Patch0411: 0411-ASoC-Intel-sof_es8336-extend-machine-driver-to-suppo.patch
|
|
|
|
Patch0412: 0412-ASoC-Intel-sof_es8336-add-cfg-dmics-component-for-UC.patch
|
|
|
|
Patch0413: 0413-ASoC-Intel-sof_es8336-simplify-speaker-gpio-naming.patch
|
|
|
|
Patch0414: 0414-ASoC-Intel-sof_es8336-support-a-separate-gpio-to-con.patch
|
|
|
|
Patch0415: 0415-ASoC-Intel-sof_es8336-add-a-quirk-for-headset-at-mic.patch
|
|
|
|
Patch0416: 0416-ASoC-Intel-sof_es8336-Add-a-quirk-for-Huawei-Mateboo.patch
|
|
|
|
Patch0417: 0417-ASoC-Intel-sof_es8336-Fix-GPIO-quirks-set-via-module.patch
|
|
|
|
Patch0418: 0418-ASoC-Intel-sof_es8336-ignore-GpioInt-when-looking-fo.patch
|
|
|
|
Patch0419: 0419-ASoC-Intel-sof_es8336-add-support-for-HDMI_In-captur.patch
|
|
|
|
Patch0420: 0420-ASoC-Intel-sof_es8336-reset-the-num_links-during-pro.patch
|
|
|
|
Patch0421: 0421-ASoC-Intel-sof_es8336-remove-hard-coded-SSP-selectio.patch
|
|
|
|
Patch0422: 0422-ASoC-Intel-fix-sof_es8336-probe.patch
|
|
|
|
Patch0423: 0423-sound-backport-firmware-matches.patch
|
|
|
|
# TODO: upstreamize quirks and fixes in alsa ucm2
|
2022-09-08 10:48:44 +03:00
|
|
|
Patch0424: 0424-ASoC-Intel-sof_es8336-Add-more-quirks-for-Russian-ha.patch
|
|
|
|
Patch0425: 0425-ASoC-Intel-sof_es8336-Add-a-quirk-for-Aquarius-NS685.patch
|
2022-09-07 14:24:27 +03:00
|
|
|
# Additional backports to make previous patches work/compile
|
|
|
|
Patch0426: 0426-ASoC-SOF-Intel-hda-report-SSP-link-mask-to-machine-d.patch
|
|
|
|
Patch0427: 0427-ASoC-Intel-soc-acpi-quirk-topology-filename-dynamica.patch
|
|
|
|
Patch0428: 0428-ASoC-soc-acpi-fix-kernel-doc-descriptor.patch
|
|
|
|
Patch0429: 0429-ASoC-soc-acpi-add-information-on-I2S-TDM-link-mask.patch
|
|
|
|
Patch0430: 0430-ALSA-hda-Fill-gaps-in-NHLT-endpoint-interface.patch
|
|
|
|
Patch0431: 0431-ASoC-SOF-avoid-casting-const-attribute-away.patch
|
|
|
|
Patch0432: 0432-ALSA-intel-dsp-config-add-more-ACPI-HIDs-for-ES83x6-.patch
|
|
|
|
Patch0433: 0433-ASoC-soc-acpi-add-comp_ids-field-for-machine-driver-.patch
|
|
|
|
Patch0434: 0434-ALSA-hda-intel-dsp-config-update-AlderLake-PCI-IDs.patch
|
|
|
|
Patch0435: 0435-ASoC-Intel-soc-acpi-Add-entry-for-sof_es8336-in-ADL-.patch
|
|
|
|
Patch0436: 0436-ALSA-intel-nhlt-add-helper-to-detect-SSP-link-mask.patch
|
2022-09-07 12:55:51 +03:00
|
|
|
|
Add support of Baikal-M SoCs
Information about config values was taken from:
From 804820df7bcb3d53a33ecd074b1eac277e938f24 Mon Sep 17 00:00:00 2001
From: Alexey Sheplyakov <asheplyakov@altlinux.org>
Date: Thu, 4 Feb 2021 19:35:14 +0400
Subject: [PATCH] config-aarch64: adjusted for Baikal-M (MBM1.0 board)
* DW_APB_TIMER=y, DW_APB_TIMER_OF=y: SoC clocks
* SERIAL_8250_DW=y: serial console
* I2C_DESIGNWARE_CORE=y, I2C_DESIGNWARE_PLATFORM=y: BMC (board
management controller) and RTC (Real Time Clock) are connected
via I2C.
* GPIO_DWAPB=y: device (PCIe, PHY, etc) reset/configuration
* RTC_DRV_PCF2127=y: RTC compiled in so the kernel automatically
sets the system time from the hardware clock
* TP_BMC=y: amongst other things handles the power button
* DRM_BAIKAL_VDU=m, DRM_BAIKAL_HDMI=m: video unit and HDMI transmitter
* CMA_SIZE_MBYTES=256: video display unit and GPU use system RAM, hence
CMA should reserve enough (contiguous) memory.
Note: CMA reserves memory during very early init, hence the size
has to be hard-coded into CONFIG
* MALI_MIDGARD=m: GPU driver, kernel side of proprietary mali blob.
Note: kernel mode code is GPLv2, so it's fine to distribute it.
* SENSORS_BT1_PVT=m: hardware temperature/voltage sensors
* PCI_BAIKAL=m: PCIe root complex. Compiled as a module since takes
ages (60 seconds or so) to probe the hardware. If compiled in
substantially increases the boot time, and machine is completely
unresponsive during probing PCIe. When built as a module probing
executes concurrently with other boot activities (unless booting
from a PCIe device)
* STMMAC_ETH=m, STMMAC_PLATFORM=m, DWMAC_BAIKAL=m: Ethernet driver
2021-06-22 16:12:03 +03:00
|
|
|
# Support SoC with Baikal-M (ARMv8) CPU
|
2022-07-11 14:38:59 +03:00
|
|
|
# http://git.altlinux.org/gears/k/kernel-image-std-def.git
|
|
|
|
# https://github.com/asheplyakov/linux/commits/baikalm-5.15.y-next (many thanks!)
|
|
|
|
Patch0600: 0600-drm-panfrost-initial-dual-core-group-GPUs-support.patch
|
|
|
|
Patch0601: 0601-net-stmmac-inital-support-of-Baikal-T1-M-SoCs-GMAC.patch
|
|
|
|
Patch0602: 0602-dt-bindings-dwmac-Add-bindings-for-Baikal-T1-M-SoCs.patch
|
|
|
|
Patch0603: 0603-net-stmmac-custom-mdio-reset-for-some-Baikal-M-board.patch
|
|
|
|
Patch0604: 0604-net-dwmac-baikal-added-compatible-strings.patch
|
|
|
|
Patch0605: 0605-hwmon-bt1-pvt-access-registers-via-pvt_-readl-writel.patch
|
|
|
|
Patch0606: 0606-hwmon-bt1-pvt-define-pvt_readl-pvt_writel-for-Baikal.patch
|
|
|
|
Patch0607: 0607-hwmon-bt1-pvt-adjusted-probing-for-Baikal-M-SoC.patch
|
|
|
|
Patch0608: 0608-hwmon-bt1-pvt-added-compatible-baikal-pvt.patch
|
|
|
|
Patch0609: 0609-clk-added-Baikal-M-clock-management-unit-driver.patch
|
|
|
|
Patch0610: 0610-cpufreq-dt-don-t-load-on-Baikal-M-SoC.patch
|
|
|
|
Patch0611: 0611-usb-dwc3-of-simple-added-compatible-string-for-Baika.patch
|
|
|
|
Patch0612: 0612-arm64-Enable-armv8-based-Baikal-M-SoC-support.patch
|
|
|
|
Patch0613: 0613-drm-bridge-New-bridge-driver-stdp4028.patch
|
|
|
|
Patch0614: 0614-drm-added-Baikal-M-SoC-video-display-unit-driver.patch
|
|
|
|
Patch0615: 0615-baikal_vdu-et101-display-port-support.patch
|
|
|
|
Patch0616: 0616-dw-hdmi-ahb-audio-support-Baikal-M-SoC.patch
|
|
|
|
Patch0617: 0617-ALSA-hda-Baikal-M-SoC-support.patch
|
|
|
|
Patch0618: 0618-Added-TF307-TF306-board-management-controller-driver.patch
|
|
|
|
Patch0619: 0619-rejected-serial-8250_dw-verify-clock-rate-in-dw8250_.patch
|
|
|
|
Patch0620: 0620-drm-panfrost-forcibly-set-dma-coherent-on-Baikal-M.patch
|
|
|
|
Patch0621: 0621-drm-panfrost-disable-devfreq-on-Baikal-M.patch
|
|
|
|
Patch0622: 0622-pm-disable-all-sleep-states-on-Baikal-M-based-boards.patch
|
|
|
|
Patch0623: 0623-arm64-stub-fixed-secondary-cores-boot-on-Baikal-M-So.patch
|
|
|
|
Patch0624: 0624-efi-rtc-avoid-calling-efi.get_time-on-Baikal-M-SoC.patch
|
|
|
|
Patch0625: 0625-net-fwnode_get_phy_id-consider-all-compatible-string.patch
|
|
|
|
Patch0626: 0626-BROKEN-dwc-i2s-support-Baikal-M-SoC.patch
|
|
|
|
Patch0627: 0627-input-added-TF307-serio-PS-2-emulator-driver.patch
|
|
|
|
Patch0628: 0628-arm64-added-Baikal-M-SoC-and-TF307-board-device-tree.patch
|
|
|
|
Patch0629: 0629-arm64-device-tree-baikal-mark-GPU-as-dma-coherent.patch
|
|
|
|
Patch0630: 0630-arm64-device-tree-Baikal-M-fixed-PHY-binding-descrip.patch
|
|
|
|
Patch0631: 0631-arm64-device-tree-Baikal-M-fixed-gpio-alias.patch
|
|
|
|
Patch0632: 0632-arm64-device-tree-Baikal-M-fixed-GPU-opp_table.patch
|
|
|
|
Patch0633: 0633-arm64-device-tree-Baikal-M-fixed-CPUs-opp_table.patch
|
|
|
|
Patch0634: 0634-arm64-defconfig-for-Baikal-M-support-testing.patch
|
Add support of Baikal-M SoCs
Information about config values was taken from:
From 804820df7bcb3d53a33ecd074b1eac277e938f24 Mon Sep 17 00:00:00 2001
From: Alexey Sheplyakov <asheplyakov@altlinux.org>
Date: Thu, 4 Feb 2021 19:35:14 +0400
Subject: [PATCH] config-aarch64: adjusted for Baikal-M (MBM1.0 board)
* DW_APB_TIMER=y, DW_APB_TIMER_OF=y: SoC clocks
* SERIAL_8250_DW=y: serial console
* I2C_DESIGNWARE_CORE=y, I2C_DESIGNWARE_PLATFORM=y: BMC (board
management controller) and RTC (Real Time Clock) are connected
via I2C.
* GPIO_DWAPB=y: device (PCIe, PHY, etc) reset/configuration
* RTC_DRV_PCF2127=y: RTC compiled in so the kernel automatically
sets the system time from the hardware clock
* TP_BMC=y: amongst other things handles the power button
* DRM_BAIKAL_VDU=m, DRM_BAIKAL_HDMI=m: video unit and HDMI transmitter
* CMA_SIZE_MBYTES=256: video display unit and GPU use system RAM, hence
CMA should reserve enough (contiguous) memory.
Note: CMA reserves memory during very early init, hence the size
has to be hard-coded into CONFIG
* MALI_MIDGARD=m: GPU driver, kernel side of proprietary mali blob.
Note: kernel mode code is GPLv2, so it's fine to distribute it.
* SENSORS_BT1_PVT=m: hardware temperature/voltage sensors
* PCI_BAIKAL=m: PCIe root complex. Compiled as a module since takes
ages (60 seconds or so) to probe the hardware. If compiled in
substantially increases the boot time, and machine is completely
unresponsive during probing PCIe. When built as a module probing
executes concurrently with other boot activities (unless booting
from a PCIe device)
* STMMAC_ETH=m, STMMAC_PLATFORM=m, DWMAC_BAIKAL=m: Ethernet driver
2021-06-22 16:12:03 +03:00
|
|
|
|
2020-03-09 10:50:38 +03:00
|
|
|
# Disable AutoReq
|
2022-03-09 19:02:02 +01:00
|
|
|
AutoReq: 0
|
2020-03-09 10:50:38 +03:00
|
|
|
# but keep autoprov for kmod(xxx)
|
2022-03-09 19:02:02 +01:00
|
|
|
AutoProv: 1
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
BuildRequires: bash
|
|
|
|
BuildRequires: bc
|
|
|
|
BuildRequires: binutils
|
|
|
|
BuildRequires: bison
|
|
|
|
BuildRequires: bzip2
|
|
|
|
%if %{with ccache}
|
|
|
|
BuildRequires: ccache
|
|
|
|
%endif
|
|
|
|
BuildRequires: flex
|
|
|
|
BuildRequires: gcc
|
2020-11-27 15:52:01 +03:00
|
|
|
# ./scripts/mkcompile_h
|
2022-03-09 19:02:02 +01:00
|
|
|
BuildRequires: hostname
|
|
|
|
BuildRequires: kmod-compat
|
2019-09-24 11:56:44 +03:00
|
|
|
BuildRequires: rsync
|
2022-03-15 17:03:05 +03:00
|
|
|
%if %{with compress_modules}
|
|
|
|
%if %{with modxz}
|
2022-03-09 19:02:02 +01:00
|
|
|
BuildRequires: xz
|
2022-03-15 17:03:05 +03:00
|
|
|
%else
|
|
|
|
BuildRequires: zstd
|
|
|
|
%endif
|
|
|
|
%endif
|
2022-03-17 10:23:10 +03:00
|
|
|
%ifarch aarch64
|
|
|
|
BuildRequires: uboot-tools
|
|
|
|
%endif
|
2022-03-09 19:02:02 +01:00
|
|
|
BuildRequires: kmod-devel
|
2020-11-26 21:21:05 +00:00
|
|
|
%ifarch x86_64 aarch64
|
2022-03-09 19:02:02 +01:00
|
|
|
BuildRequires: numa-devel
|
|
|
|
%endif
|
|
|
|
%if %{with uml}
|
|
|
|
BuildRequires: vde-devel
|
2014-05-19 18:34:31 +04:00
|
|
|
%endif
|
2022-03-09 19:02:02 +01:00
|
|
|
# For power tools
|
|
|
|
BuildRequires: pkgconfig(ncurses)
|
2014-05-19 18:34:31 +04:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# For perf, cpufreq and all other tools
|
|
|
|
# For cpupower
|
2014-07-11 16:00:31 +04:00
|
|
|
%if %{build_cpupower}
|
2022-03-09 19:02:02 +01:00
|
|
|
BuildRequires: pciutils-devel
|
2014-07-11 16:00:31 +04:00
|
|
|
%endif
|
2022-03-09 19:02:02 +01:00
|
|
|
# For perf
|
2014-07-11 16:00:31 +04:00
|
|
|
%if %{build_perf}
|
2022-03-09 19:02:02 +01:00
|
|
|
BuildRequires: asciidoc
|
|
|
|
BuildRequires: perl-ExtUtils-Embed
|
|
|
|
BuildRequires: python3
|
|
|
|
BuildRequires: xmlto
|
|
|
|
BuildRequires: audit-devel
|
|
|
|
BuildRequires: binutils-devel
|
|
|
|
BuildRequires: elfutils-devel
|
|
|
|
BuildRequires: java-1.8.0-openjdk-devel
|
|
|
|
BuildRequires: libunwind-devel
|
|
|
|
BuildRequires: newt-devel
|
|
|
|
BuildRequires: perl-devel
|
|
|
|
BuildRequires: pkgconfig(babeltrace)
|
|
|
|
BuildRequires: pkgconfig(libcrypto)
|
|
|
|
BuildRequires: pkgconfig(python3)
|
|
|
|
BuildRequires: pkgconfig(slang)
|
|
|
|
BuildRequires: pkgconfig(zlib)
|
2020-12-30 21:25:08 +03:00
|
|
|
%endif
|
|
|
|
|
2019-12-01 02:03:15 +03:00
|
|
|
# (To generate keys)
|
2019-12-07 21:57:55 +03:00
|
|
|
# LibreSSL has GOST support without editing openssl.cnf
|
|
|
|
# or dlopen()-ing external library
|
2022-03-09 19:02:02 +01:00
|
|
|
BuildRequires: libressl
|
|
|
|
BuildRequires: libressl-devel
|
2019-11-11 21:16:01 +03:00
|
|
|
# To verify signatures (find, xargs, hexdump)
|
2022-03-09 19:02:02 +01:00
|
|
|
BuildRequires: findutils
|
|
|
|
BuildRequires: util-linux
|
2019-11-11 17:47:53 +03:00
|
|
|
|
2020-07-29 10:59:41 +03:00
|
|
|
%if %{with binary_extra_modules}
|
2022-03-09 19:02:02 +01:00
|
|
|
BuildRequires: auto-krokodil-rpm-macros
|
|
|
|
BuildRequires: kernel-source-rtl8821ce
|
|
|
|
BuildRequires: kernel-source-rtl8821cu
|
|
|
|
# Broadcom-wl and nvidia390 contain a proprietary blob which is only for x86
|
2021-10-07 00:45:03 +03:00
|
|
|
%ifarch %{ix86} %{x86_64}
|
2022-03-09 19:02:02 +01:00
|
|
|
BuildRequires: kernel-source-broadcom-wl
|
|
|
|
BuildRequires: kernel-source-nvidia390
|
2021-10-07 00:45:03 +03:00
|
|
|
%endif
|
2022-03-09 19:02:02 +01:00
|
|
|
# Nvidia470+ are x86_64 only (maybe aarch64 will be also packaged later)
|
2021-10-19 21:43:37 +03:00
|
|
|
%ifarch %{x86_64}
|
2022-03-09 19:02:02 +01:00
|
|
|
BuildRequires: kernel-source-nvidia470
|
2022-05-04 10:07:56 +03:00
|
|
|
BuildRequires: kernel-source-nvidia510
|
2022-05-28 12:25:23 +03:00
|
|
|
BuildRequires: kernel-source-nvidia515
|
2021-10-19 21:43:37 +03:00
|
|
|
%endif
|
2022-03-09 19:02:02 +01:00
|
|
|
BuildRequires: kernel-source-tripso
|
|
|
|
BuildRequires: kernel-source-ipt-so
|
Update from 5.4 to 5.10.1
- rediffed most of patches, renamed files to easify further rediffs by git format-patch
- thanks to abf.io/kernels_stable for some patches for kernel 5.9
- using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much)
- pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD
- dropped patch adding sysctl to disable disk-based swap because it has not found any usage
- bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful
- keeping kernel libc headers in older kernels for now
- dropped building external virtualbox guest modules because they are now included into the mainline kernel
- offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms
- offed building kernel-shredder because it is not buildable on kernel 5.10
- updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0)
It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4.
TODO: update kernel configs
TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
|
|
|
%if %{with binary_virtualbox_host}
|
2022-03-09 19:02:02 +01:00
|
|
|
BuildRequires: kernel-source-virtualbox
|
2020-11-26 18:58:01 +00:00
|
|
|
%endif
|
2022-03-09 19:02:02 +01:00
|
|
|
BuildRequires: kernel-source-v4l2loopback
|
Update from 5.4 to 5.10.1
- rediffed most of patches, renamed files to easify further rediffs by git format-patch
- thanks to abf.io/kernels_stable for some patches for kernel 5.9
- using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much)
- pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD
- dropped patch adding sysctl to disable disk-based swap because it has not found any usage
- bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful
- keeping kernel libc headers in older kernels for now
- dropped building external virtualbox guest modules because they are now included into the mainline kernel
- offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms
- offed building kernel-shredder because it is not buildable on kernel 5.10
- updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0)
It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4.
TODO: update kernel configs
TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
|
|
|
%if %{with binary_shredder}
|
2020-11-27 23:00:06 +03:00
|
|
|
BuildRequires: kernel-source-shredder-kernel
|
|
|
|
%endif
|
2022-03-09 19:02:02 +01:00
|
|
|
# Rosa-test-suite is maintained in certified branches only nlkm, memfreetest, pcietest
|
2020-08-06 17:26:48 +03:00
|
|
|
%if %{with nickel}
|
2022-03-09 19:02:02 +01:00
|
|
|
BuildRequires: kernel-source-rosa-test-suite
|
2020-07-29 10:59:41 +03:00
|
|
|
%endif
|
2021-05-03 18:21:14 +03:00
|
|
|
%endif
|
2022-03-09 19:02:02 +01:00
|
|
|
# End of with binary_extra_modules
|
2021-05-03 18:21:14 +03:00
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
Provides: kernel = %{EVRD}
|
|
|
|
Provides: kernel-%{flavour} = %{EVRD}
|
2021-10-10 16:12:22 +03:00
|
|
|
Provides: kernel-abi(%{kver_full}) = %{EVRD}
|
2022-03-09 19:02:02 +01:00
|
|
|
# Dnf config-manager --dump | grep installonly
|
2021-05-03 15:56:13 +03:00
|
|
|
Provides: installonlypkg(kernel) = %{EVRD}.image
|
|
|
|
Provides: installonlypkg(kernel) = %{EVRD}.modules
|
2019-07-16 18:30:53 +03:00
|
|
|
|
2021-05-04 14:39:10 +03:00
|
|
|
# >= because of added support of zstd-compressed modules
|
2022-03-15 17:03:05 +03:00
|
|
|
Requires(posttrans): dracut >= 053-0.git5eb736.5
|
|
|
|
Requires(posttrans): kmod >= 28-3
|
2021-05-03 15:56:13 +03:00
|
|
|
|
2022-03-23 12:18:52 +03:00
|
|
|
# Need for rebuild dkms drivers
|
|
|
|
Requires: (kernel-%{tar_ver}-generic-devel if dkms)
|
|
|
|
|
2020-12-27 23:46:32 +03:00
|
|
|
# Usually necessary, but sometimes user may want to not install them
|
|
|
|
Recommends: crda
|
2022-03-09 19:02:02 +01:00
|
|
|
Recommends: linux-firmware
|
2021-05-03 15:56:13 +03:00
|
|
|
Recommends: microcode
|
2020-12-27 16:13:54 +03:00
|
|
|
# Set BFQ as default scheduler for HDDs
|
|
|
|
# https://www.phoronix.com/scan.php?page=article&item=linux-50hdd-io
|
|
|
|
Recommends: udev-rules-ioschedulers
|
2022-03-09 19:02:02 +01:00
|
|
|
Recommends: wireless-regdb
|
2019-07-16 18:30:53 +03:00
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
%if %{with flow_abi}
|
|
|
|
Requires: kernel-%{kernelversion}.%{patchlevel}-rosa-flow-abi
|
2013-11-16 00:27:01 +04:00
|
|
|
%endif
|
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
%ifarch %{ix86}
|
|
|
|
Conflicts: arch(x86_64)
|
2013-11-16 00:27:01 +04:00
|
|
|
%endif
|
2016-07-21 15:58:13 +03:00
|
|
|
|
2021-09-19 00:46:54 +03:00
|
|
|
# XXX temporary hack to upgrade from kernel-headers 1:5.4
|
|
|
|
%if %{build_headers}
|
|
|
|
Recommends: kernel-headers = %{EVRD}
|
|
|
|
%endif
|
|
|
|
|
2021-10-10 16:12:22 +03:00
|
|
|
%if %{with binary_extra_modules}
|
|
|
|
%ifarch %{ix86} %{x86_64}
|
2022-09-20 14:48:35 +03:00
|
|
|
%kroko_req_modules_in_kernel -j %{nvidia_390_j} -n %{nvidia_390_n} -p %{kver_full}
|
2021-10-10 16:12:22 +03:00
|
|
|
%endif
|
2021-10-19 21:43:37 +03:00
|
|
|
%ifarch %{x86_64}
|
2022-09-20 14:48:35 +03:00
|
|
|
%kroko_req_modules_in_kernel -j %{nvidia_470_j} -n %{nvidia_470_n} -p %{kver_full}
|
|
|
|
%kroko_req_modules_in_kernel -j %{nvidia_510_j} -n %{nvidia_510_n} -p %{kver_full}
|
|
|
|
%kroko_req_modules_in_kernel -j %{nvidia_515_j} -n %{nvidia_515_n} -p %{kver_full}
|
2021-10-19 21:43:37 +03:00
|
|
|
%endif
|
2021-10-10 16:12:22 +03:00
|
|
|
%endif
|
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
%description
|
2019-07-16 18:30:53 +03:00
|
|
|
The kernel package contains the Linux kernel (vmlinuz), the core of your
|
|
|
|
operating system. The kernel handles the basic functions
|
|
|
|
of the operating system: memory allocation, process allocation, device
|
|
|
|
input and output, etc. This is a general-purpose kernel.
|
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
%posttrans
|
2019-07-16 18:30:53 +03:00
|
|
|
# We always regenerate initrd here, even if it already exists. This may
|
|
|
|
# happen if kernel-<...>-devel is installed first, triggers rebuild of
|
|
|
|
# DKMS modules and some of these request remaking of initrd. The initrd
|
|
|
|
# that is created then will be non-functional. But when the user installs
|
|
|
|
# kernel-<...> package, that defunct initrd will be replaced with a working
|
|
|
|
# one here.
|
2021-10-17 00:46:32 +03:00
|
|
|
dracut -f %{initrd_path} %{kver_full}
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
# File triggers from grub packages will handle this.
|
|
|
|
#/usr/sbin/update-grub2
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2021-10-17 00:46:32 +03:00
|
|
|
%transfiletriggerin -- %{_modulesdir}/%{kver_full}
|
|
|
|
# Detect all modules, including ones inside kernel-module* packages
|
|
|
|
if grep -qE '/.*\.ko(|\..*)' ; then
|
|
|
|
depmod -a %{kver_full}
|
|
|
|
fi
|
|
|
|
|
|
|
|
%transfiletriggerpostun -- %{_modulesdir}/%{kver_full}
|
|
|
|
# Handle e.g. removal of kernel-module* packages
|
|
|
|
# List of files is not available here (?)
|
|
|
|
depmod -a %{kver_full}
|
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
%files -f %{kernel_files}
|
|
|
|
%{_bootdir}/System.map-%{kver_full}
|
2022-03-15 17:03:05 +03:00
|
|
|
%{_bootdir}/symvers-%{kver_full}.*
|
2021-05-03 15:56:13 +03:00
|
|
|
%{_bootdir}/config-%{kver_full}
|
|
|
|
%{_bootdir}/vmlinuz-%{kver_full}
|
Delete old initrds by RPM
After moving to dnf (installonlypkg(kernel)) schema of packaging the kernel,
the %%postun scriptlet stopped working properly because $1 is the number
of packages left after the transaction, and there are multiple
kernels - packages with the same name but of different version/release - left.
Let's just make initrd be %%ghost as Fedora (but increase its size from Fedora's 20 MiB to 65 MiB),
and drop deleting empty directories etc. Recent commit fixed ownership of directories,
now /lib/modules/kernel_version is owned by RPM (it was not), dkms will remove modules
that it built, and, if anything else was left, then let's just not touch it, why must we delete
what we know nothing about?
Also delete scriptlet in the devel subpackage, that scriptlet would probably cause problems
with reinstalling the devel package.
2021-05-24 21:10:00 +03:00
|
|
|
%ghost %{initrd_path}
|
2021-05-03 15:56:13 +03:00
|
|
|
%ifarch %{armx}
|
|
|
|
%{_bootdir}/dtb-%{kver_full}
|
|
|
|
%endif
|
|
|
|
%{_modulesdir}/%{kver_full}/modules.*
|
|
|
|
%if %{with flow_abi}
|
|
|
|
%{_modulesdir}/%{kver_full}/kernel/zzz-%{kernelversion}.%{patchlevel}-rosa-flow-abi
|
|
|
|
%endif
|
|
|
|
%if %{with binary_extra_modules}
|
|
|
|
# 8821ce.ko.debug will not be excluded and will be in the main debug subpackage
|
|
|
|
%exclude %{_modulesdir}/%{kver_full}/kernel/net/wireless/8821ce.ko%{kmod_suffix}
|
2021-10-03 16:35:09 +03:00
|
|
|
%exclude %{_modulesdir}/%{kver_full}/kernel/net/wireless/8821cu.ko%{kmod_suffix}
|
2021-10-07 00:45:03 +03:00
|
|
|
%ifarch %{ix86} %{x86_64}
|
|
|
|
%exclude %{_modulesdir}/%{kver_full}/kernel/net/wireless/wl.ko%{kmod_suffix}
|
2021-10-19 21:43:37 +03:00
|
|
|
%endif
|
2021-05-03 15:56:13 +03:00
|
|
|
%if %{with binary_shredder}
|
|
|
|
%exclude %{_modulesdir}/%{kver_full}/kernel/extra/shredder-kernel.ko%{kmod_suffix}
|
|
|
|
%endif
|
2021-10-16 20:11:50 +03:00
|
|
|
%exclude %{_modulesdir}/%{kver_full}/kernel/drivers/media/v4l2loopback.ko%{kmod_suffix}
|
2021-05-03 15:56:13 +03:00
|
|
|
%if %{with binary_virtualbox_host}
|
|
|
|
# vbox host modules may be built here (vboxnetflt vboxnetadp vboxdrv vboxpci)
|
|
|
|
# vbox guest modules are in the mainline kernel now (vboxvideo vboxguest vboxsf)
|
|
|
|
%exclude %{_modulesdir}/%{kver_full}/kernel/misc/vbox*.ko%{kmod_suffix}
|
|
|
|
%endif
|
|
|
|
%exclude %{_modulesdir}/%{kver_full}/kernel/net/xt_TRIPSO.ko%{kmod_suffix}
|
|
|
|
%exclude %{_modulesdir}/%{kver_full}/kernel/net/xt_so.ko%{kmod_suffix}
|
|
|
|
%if %{with nickel}
|
|
|
|
%exclude %{_modulesdir}/%{kver_full}/kernel/misc/nlkm.ko%{kmod_suffix}
|
|
|
|
%exclude %{_modulesdir}/%{kver_full}/kernel/misc/memfreetest.ko%{kmod_suffix}
|
|
|
|
%exclude %{_modulesdir}/%{kver_full}/kernel/misc/pcietest.ko%{kmod_suffix}
|
|
|
|
%endif
|
2022-03-09 19:02:02 +01:00
|
|
|
%endif
|
|
|
|
# End of with binary_extra_modules
|
2019-07-16 18:30:53 +03:00
|
|
|
|
|
|
|
############################################################################
|
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
%if %{build_devel}
|
2021-05-03 15:56:13 +03:00
|
|
|
%package devel
|
|
|
|
Summary: Development files for %{name}
|
2019-07-16 18:30:53 +03:00
|
|
|
Group: Development/Kernel
|
|
|
|
Requires: glibc-devel
|
|
|
|
Requires: ncurses-devel
|
|
|
|
Requires: gcc
|
2022-03-09 19:02:02 +01:00
|
|
|
Requires: make
|
2019-07-16 18:30:53 +03:00
|
|
|
Requires: perl
|
2022-06-09 17:28:02 +03:00
|
|
|
Requires: %{name} = %{EVRD}
|
2019-07-16 18:30:53 +03:00
|
|
|
Provides: kernel-devel = %{kverrel}
|
2019-11-17 15:12:03 +03:00
|
|
|
Provides: kernel-%{flavour}-devel = %{kverrel}
|
2021-05-03 15:56:13 +03:00
|
|
|
Provides: installonlypkg(kernel) = %{EVRD}.devel
|
2019-07-16 18:30:53 +03:00
|
|
|
|
2021-04-22 16:04:36 +03:00
|
|
|
# Have dkms updated/installed before the kernel, scriptlet here checks if dkms exists
|
2022-03-09 19:02:02 +01:00
|
|
|
OrderWithRequires(post): dkms
|
Delete old initrds by RPM
After moving to dnf (installonlypkg(kernel)) schema of packaging the kernel,
the %%postun scriptlet stopped working properly because $1 is the number
of packages left after the transaction, and there are multiple
kernels - packages with the same name but of different version/release - left.
Let's just make initrd be %%ghost as Fedora (but increase its size from Fedora's 20 MiB to 65 MiB),
and drop deleting empty directories etc. Recent commit fixed ownership of directories,
now /lib/modules/kernel_version is owned by RPM (it was not), dkms will remove modules
that it built, and, if anything else was left, then let's just not touch it, why must we delete
what we know nothing about?
Also delete scriptlet in the devel subpackage, that scriptlet would probably cause problems
with reinstalling the devel package.
2021-05-24 21:10:00 +03:00
|
|
|
# Try to remove the main kernel package after removing this devel package
|
|
|
|
# because there may be dkms-built kernel modules inside directories owned
|
|
|
|
# by the main package, try to get rid of such files before RPM starts to
|
|
|
|
# deal with directories owned in the main package
|
|
|
|
# (note that the devel package does not explicitly require the main package,
|
|
|
|
# there is no need to do so, a kernel module may be built using just the devel part).
|
|
|
|
OrderWithRequires(postun): %{name} = %{EVRD}
|
2021-04-22 16:04:36 +03:00
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
%ifarch %{ix86}
|
|
|
|
Conflicts: arch(x86_64)
|
2013-11-16 00:27:01 +04:00
|
|
|
%endif
|
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
%description devel
|
2022-03-09 19:02:02 +01:00
|
|
|
This package contains the kernel files (headers and build tools) that should
|
|
|
|
be enough to build additional drivers for use with %{name}.
|
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
%post devel
|
2020-08-03 21:07:52 +03:00
|
|
|
if command -v dkms_autoinstaller >/dev/null 2>&1; then
|
|
|
|
dkms_autoinstaller start %{kver_full}
|
|
|
|
fi
|
2019-07-16 18:30:53 +03:00
|
|
|
|
2019-11-12 16:16:27 +03:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
%preun devel
|
2019-07-16 18:30:53 +03:00
|
|
|
# If any DKMS modules with REMAKE_INITRD=yes in their configs have been
|
|
|
|
# uninstalled, initrd has been regenerated for the given kernel. However,
|
|
|
|
# the kernel itself might have been uninstalled before, so that (defunct)
|
|
|
|
# initrd image files would be left behind. Remove them if the kernel itself
|
|
|
|
# is no longer installed. Should work if they are uninstalled in parallel
|
|
|
|
# too.
|
|
|
|
if ! test -f /boot/vmlinuz-%{kver_full}; then
|
|
|
|
rm -f /boot/initrd-%{kver_full}.img
|
|
|
|
rm -f /boot/initrd-%{kver_full}_old.img
|
|
|
|
fi
|
|
|
|
|
2020-03-18 22:20:03 +03:00
|
|
|
if ! command -v dkms >/dev/null 2>&1; then exit 0; fi
|
|
|
|
|
|
|
|
for ii in $(/usr/sbin/dkms status -k %{kver_full} | awk '{ print $1 $2; }'); do
|
|
|
|
mod=$(echo $ii | awk -v FS=',' '{ print $1; }')
|
|
|
|
ver=$(echo $ii | awk -v FS=',' '{ print $2; }')
|
|
|
|
/usr/sbin/dkms --rpm_safe_upgrade uninstall -m $mod -v $ver -k %{kver_full} || :
|
|
|
|
done
|
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
%files devel
|
2020-11-26 21:33:48 +00:00
|
|
|
%{devel_root}/Documentation
|
2019-07-16 18:30:53 +03:00
|
|
|
%dir %{devel_root}
|
|
|
|
%dir %{devel_root}/arch
|
|
|
|
%dir %{devel_root}/include
|
|
|
|
%{devel_root}/arch/um
|
2020-11-26 21:33:48 +00:00
|
|
|
%{devel_root}/arch/x86
|
|
|
|
%{devel_root}/arch/arm
|
|
|
|
%{devel_root}/arch/arm64
|
2019-07-16 18:30:53 +03:00
|
|
|
%{devel_root}/block
|
|
|
|
%{devel_root}/certs
|
|
|
|
%{devel_root}/crypto
|
|
|
|
%{devel_root}/drivers
|
|
|
|
%{devel_root}/fs
|
2020-11-26 21:33:48 +00:00
|
|
|
%{devel_root}/include/soc
|
2019-07-16 18:30:53 +03:00
|
|
|
%{devel_root}/include/acpi
|
|
|
|
%{devel_root}/include/asm-generic
|
|
|
|
%{devel_root}/include/clocksource
|
|
|
|
%{devel_root}/include/config
|
|
|
|
%{devel_root}/include/crypto
|
|
|
|
%{devel_root}/include/drm
|
|
|
|
%{devel_root}/include/dt-bindings
|
|
|
|
%{devel_root}/include/generated
|
|
|
|
%{devel_root}/include/keys
|
|
|
|
%{devel_root}/include/kvm
|
Update from 5.4 to 5.10.1
- rediffed most of patches, renamed files to easify further rediffs by git format-patch
- thanks to abf.io/kernels_stable for some patches for kernel 5.9
- using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much)
- pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD
- dropped patch adding sysctl to disable disk-based swap because it has not found any usage
- bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful
- keeping kernel libc headers in older kernels for now
- dropped building external virtualbox guest modules because they are now included into the mainline kernel
- offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms
- offed building kernel-shredder because it is not buildable on kernel 5.10
- updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0)
It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4.
TODO: update kernel configs
TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
|
|
|
%{devel_root}/include/kunit
|
2019-07-16 18:30:53 +03:00
|
|
|
%{devel_root}/include/linux
|
|
|
|
%{devel_root}/include/math-emu
|
|
|
|
%{devel_root}/include/media
|
Update from 5.4 to 5.10.1
- rediffed most of patches, renamed files to easify further rediffs by git format-patch
- thanks to abf.io/kernels_stable for some patches for kernel 5.9
- using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much)
- pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD
- dropped patch adding sysctl to disable disk-based swap because it has not found any usage
- bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful
- keeping kernel libc headers in older kernels for now
- dropped building external virtualbox guest modules because they are now included into the mainline kernel
- offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms
- offed building kernel-shredder because it is not buildable on kernel 5.10
- updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0)
It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4.
TODO: update kernel configs
TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
|
|
|
%{devel_root}/include/memory
|
2019-07-16 18:30:53 +03:00
|
|
|
%{devel_root}/include/misc
|
|
|
|
%{devel_root}/include/net
|
|
|
|
%{devel_root}/include/pcmcia
|
|
|
|
%{devel_root}/include/ras
|
|
|
|
%{devel_root}/include/rdma
|
|
|
|
%{devel_root}/include/scsi
|
|
|
|
%{devel_root}/include/sound
|
|
|
|
%{devel_root}/include/target
|
|
|
|
%{devel_root}/include/trace
|
|
|
|
%{devel_root}/include/uapi
|
2019-09-24 18:37:26 +03:00
|
|
|
%{devel_root}/include/vdso
|
2019-07-16 18:30:53 +03:00
|
|
|
%{devel_root}/include/video
|
|
|
|
%{devel_root}/include/xen
|
|
|
|
%{devel_root}/init
|
|
|
|
%{devel_root}/ipc
|
|
|
|
%{devel_root}/kernel
|
|
|
|
%{devel_root}/lib
|
|
|
|
%{devel_root}/mm
|
|
|
|
%{devel_root}/net
|
|
|
|
%{devel_root}/samples
|
|
|
|
%{devel_root}/scripts
|
|
|
|
%{devel_root}/security
|
|
|
|
%{devel_root}/sound
|
|
|
|
%{devel_root}/tools
|
|
|
|
%{devel_root}/usr
|
|
|
|
%{devel_root}/virt
|
|
|
|
%{devel_root}/.config
|
|
|
|
%{devel_root}/Kbuild
|
|
|
|
%{devel_root}/Kconfig
|
|
|
|
%{devel_root}/Makefile
|
|
|
|
%{devel_root}/Module.symvers
|
|
|
|
%{devel_root}/arch/Kconfig
|
|
|
|
%{_modulesdir}/%{kver_full}/build
|
|
|
|
%{_modulesdir}/%{kver_full}/source
|
2022-03-09 19:02:02 +01:00
|
|
|
%endif
|
|
|
|
# End of build_devel
|
2019-07-16 18:30:53 +03:00
|
|
|
|
|
|
|
############################################################################
|
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
%if %{build_debug}
|
2021-05-03 15:56:13 +03:00
|
|
|
%package debuginfo
|
|
|
|
Summary: Debuginfo for %{name}
|
2019-07-16 18:30:53 +03:00
|
|
|
Group: Development/Debug
|
|
|
|
Provides: kernel-debug = %{kverrel}
|
2022-03-09 19:02:02 +01:00
|
|
|
AutoReq: 0
|
|
|
|
AutoProv: 0
|
2019-07-16 18:30:53 +03:00
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
%description debuginfo
|
|
|
|
This package contains the files with debuginfo for %{name}.
|
2019-07-16 18:30:53 +03:00
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
%files debuginfo -f %{debuginfo_files}
|
|
|
|
%{_bootdir}/vmlinux-%{kver_full}
|
2022-03-09 19:02:02 +01:00
|
|
|
%endif
|
|
|
|
# End of build_debug
|
2019-07-16 18:30:53 +03:00
|
|
|
|
|
|
|
############################################################################
|
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
%if %{build_doc}
|
2021-05-03 15:56:13 +03:00
|
|
|
%package doc
|
2022-03-09 19:02:02 +01:00
|
|
|
Summary: Various documentation bits found in the kernel source
|
|
|
|
Group: Documentation
|
2022-03-15 17:03:05 +03:00
|
|
|
BuildArch: noarch
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
%description doc
|
2019-07-16 18:30:53 +03:00
|
|
|
This package contains documentation files from the kernel source.
|
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
%files doc
|
2019-07-21 21:43:25 +03:00
|
|
|
%doc linux-%{tar_ver}/Documentation/*
|
2013-11-16 00:27:01 +04:00
|
|
|
%endif
|
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
############################################################################
|
|
|
|
|
2013-11-16 00:27:01 +04:00
|
|
|
%if %{build_perf}
|
|
|
|
%package -n perf
|
|
|
|
Summary: perf tool and the supporting documentation
|
|
|
|
Group: System/Kernel and hardware
|
|
|
|
|
|
|
|
%description -n perf
|
2019-07-16 18:30:53 +03:00
|
|
|
The package contains perf tool and the supporting documentation.
|
|
|
|
|
|
|
|
%files -n perf
|
|
|
|
%{_bindir}/perf
|
|
|
|
%ifarch x86_64
|
|
|
|
%{_bindir}/perf-read-vdso32
|
2013-11-16 00:27:01 +04:00
|
|
|
%endif
|
2019-07-16 18:30:53 +03:00
|
|
|
%{_bindir}/trace
|
2022-03-23 12:00:37 +03:00
|
|
|
%{_includedir}/perf/perf_dlfilter.h
|
2019-07-16 18:30:53 +03:00
|
|
|
%dir %{_prefix}/libexec/perf-core
|
|
|
|
%dir %{_libdir}/traceevent
|
|
|
|
%dir %{_libdir}/traceevent/plugins
|
2022-03-13 17:36:13 +03:00
|
|
|
%{_libdir}/libperf-jvmti.so
|
2019-07-16 18:30:53 +03:00
|
|
|
%{_libdir}/traceevent/plugins/*
|
|
|
|
%{_prefix}/libexec/perf-core/*
|
|
|
|
%{_mandir}/man[1-8]/perf*
|
|
|
|
%{_sysconfdir}/bash_completion.d/perf
|
|
|
|
%{_datadir}/perf-core/strace/groups/*
|
|
|
|
%{_datadir}/doc/perf-tip/*.txt
|
|
|
|
/usr/lib/perf/examples/bpf/*
|
|
|
|
/usr/lib/perf/include/bpf/*
|
|
|
|
%endif
|
|
|
|
|
|
|
|
############################################################################
|
2013-11-16 00:27:01 +04:00
|
|
|
|
|
|
|
%if %{build_cpupower}
|
|
|
|
%package -n cpupower
|
2021-05-03 15:56:13 +03:00
|
|
|
|
2014-10-14 13:22:01 +04:00
|
|
|
Summary: The cpupower tools
|
2013-11-16 00:27:01 +04:00
|
|
|
Group: System/Kernel and hardware
|
|
|
|
|
|
|
|
%description -n cpupower
|
2014-10-14 13:22:01 +04:00
|
|
|
The cpupower tools.
|
2013-11-16 00:27:01 +04:00
|
|
|
|
|
|
|
%post -n cpupower
|
2014-04-18 15:05:40 +04:00
|
|
|
if [ $1 -ge 0 ]; then
|
2015-03-17 20:53:12 +03:00
|
|
|
# Do not enable/disable cpupower.service directly, because it should start
|
|
|
|
# when cpupower.path triggers it.
|
|
|
|
/bin/systemctl enable cpupower.path >/dev/null 2>&1 || :
|
|
|
|
/bin/systemctl start cpupower.path >/dev/null 2>&1 || :
|
2014-04-01 15:25:39 +04:00
|
|
|
fi
|
2013-11-16 00:27:01 +04:00
|
|
|
|
|
|
|
%preun -n cpupower
|
2014-04-01 15:25:39 +04:00
|
|
|
if [ $1 -eq 0 ]; then
|
2022-03-09 19:02:02 +01:00
|
|
|
/bin/systemctl --no-reload disable cpupower.path > /dev/null 2>&1 || :
|
|
|
|
/bin/systemctl stop cpupower.path > /dev/null 2>&1 || :
|
2014-04-01 15:25:39 +04:00
|
|
|
fi
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
%files -n cpupower -f cpupower.lang
|
2022-03-09 19:02:02 +01:00
|
|
|
%config(noreplace) %{_sysconfdir}/sysconfig/cpupower
|
2019-07-16 18:30:53 +03:00
|
|
|
%{_bindir}/cpupower
|
|
|
|
%{_bindir}/cpupower-start.sh
|
|
|
|
%{_libdir}/libcpupower.so.0
|
|
|
|
%{_libdir}/libcpupower.so.0.0.1
|
|
|
|
%{_unitdir}/cpupower.service
|
|
|
|
%{_unitdir}/cpupower.path
|
|
|
|
%{_datadir}/bash-completion/completions/cpupower
|
|
|
|
%{_mandir}/man[1-8]/cpupower*
|
|
|
|
|
|
|
|
############################################################################
|
|
|
|
|
2013-11-16 00:27:01 +04:00
|
|
|
%package -n cpupower-devel
|
2014-10-14 13:22:01 +04:00
|
|
|
Summary: Development files for cpupower
|
2013-11-16 00:27:01 +04:00
|
|
|
Group: Development/Kernel
|
2021-05-03 15:56:13 +03:00
|
|
|
Requires: cpupower = %{EVRD}
|
2013-11-16 00:27:01 +04:00
|
|
|
Conflicts: %{_lib}cpufreq-devel
|
|
|
|
|
|
|
|
%description -n cpupower-devel
|
|
|
|
This package contains the development files for cpupower.
|
2019-07-16 18:30:53 +03:00
|
|
|
|
|
|
|
%files -n cpupower-devel
|
|
|
|
%{_libdir}/libcpupower.so
|
|
|
|
%{_includedir}/cpufreq.h
|
2020-03-21 12:28:56 +03:00
|
|
|
%{_includedir}/cpuidle.h
|
2013-11-16 00:27:01 +04:00
|
|
|
%endif
|
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
############################################################################
|
|
|
|
|
2018-09-04 11:17:26 +03:00
|
|
|
%if %{build_headers}
|
2021-05-03 15:56:13 +03:00
|
|
|
%package -n kernel-headers
|
2013-11-16 00:27:01 +04:00
|
|
|
Summary: Linux kernel header files mostly used by your C library
|
|
|
|
Group: System/Kernel and hardware
|
2020-04-14 22:03:16 +03:00
|
|
|
Provides: linux-userspace-headers = %{EVRD}
|
|
|
|
Provides: kernel-release-headers = %{EVRD}
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
%description -n kernel-headers
|
2013-11-16 00:27:01 +04:00
|
|
|
C header files from the Linux kernel. The header files define
|
|
|
|
structures and constants that are needed for building most
|
|
|
|
standard programs, notably the C library.
|
|
|
|
|
|
|
|
This package is not suitable for building kernel modules, you
|
|
|
|
should use the 'kernel-devel' package instead.
|
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
%files -n kernel-headers
|
2020-03-21 12:28:56 +03:00
|
|
|
%{_includedir}/*
|
2013-11-16 00:27:01 +04:00
|
|
|
# Don't conflict with cpupower-devel
|
|
|
|
%if %{build_cpupower}
|
2020-03-21 12:28:56 +03:00
|
|
|
%exclude %{_includedir}/cpufreq.h
|
|
|
|
%exclude %{_includedir}/cpuidle.h
|
2013-11-16 00:27:01 +04:00
|
|
|
%endif
|
2022-03-23 12:00:37 +03:00
|
|
|
%if %{build_perf}
|
|
|
|
%exclude %{_includedir}/perf/perf_dlfilter.h
|
|
|
|
%endif
|
2018-09-04 11:17:26 +03:00
|
|
|
%endif
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
############################################################################
|
|
|
|
|
2020-03-13 20:35:12 +03:00
|
|
|
%if %{with uml}
|
2021-05-03 15:56:13 +03:00
|
|
|
%package uml
|
2020-03-13 20:35:12 +03:00
|
|
|
Summary: User Mode Linux binary
|
|
|
|
Group: System/Kernel and hardware
|
2021-05-03 15:56:13 +03:00
|
|
|
Provides: kernel-uml = %{kverrel}
|
|
|
|
Provides: kernel-uml-%{flavour} = %{kverrel}
|
|
|
|
Provides: installonlypkg(kernel) = %{EVRD}.uml
|
2020-03-13 20:35:12 +03:00
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
%description uml
|
2020-03-18 22:20:03 +03:00
|
|
|
User Mode Linux binary.
|
2021-05-03 15:56:13 +03:00
|
|
|
Stripped, debug is in %{name}-debuginfo.
|
2020-03-13 20:35:12 +03:00
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
%files uml
|
2020-03-13 20:35:12 +03:00
|
|
|
%{_bindir}/linux-uml-%{kver_full}
|
2022-03-09 19:02:02 +01:00
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
2020-03-13 20:35:12 +03:00
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
%package uml-modules
|
2020-03-13 20:35:12 +03:00
|
|
|
Summary: User Mode Linux (UML) kernel modules
|
|
|
|
Group: System/Kernel and hardware
|
2021-05-03 15:56:13 +03:00
|
|
|
Provides: kernel-uml-modules = %{kverrel}
|
|
|
|
Provides: kernel-uml-modules-%{flavour} = %{kverrel}
|
|
|
|
Provides: installonlypkg(kernel-module) = %{EVRD}.uml
|
2020-03-13 20:35:12 +03:00
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
%description uml-modules
|
2022-03-09 19:02:02 +01:00
|
|
|
User Mode Linux (UML) kernel modules:
|
|
|
|
- not compressed;
|
|
|
|
- not stripped;
|
|
|
|
- signed.
|
2020-03-13 20:35:12 +03:00
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
%files uml-modules
|
2020-03-13 20:35:12 +03:00
|
|
|
/lib/modules-uml/%{kver_full}
|
2020-03-18 22:20:03 +03:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
%endif
|
|
|
|
# End of uml
|
2020-03-18 22:20:03 +03:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
#-----------------------------------------------------------------------------
|
2020-07-29 10:59:41 +03:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
###############################
|
|
|
|
# Extra modules package definitions
|
2020-07-29 10:59:41 +03:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
%if %{with binary_extra_modules}
|
Update from 5.4 to 5.10.1
- rediffed most of patches, renamed files to easify further rediffs by git format-patch
- thanks to abf.io/kernels_stable for some patches for kernel 5.9
- using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much)
- pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD
- dropped patch adding sysctl to disable disk-based swap because it has not found any usage
- bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful
- keeping kernel libc headers in older kernels for now
- dropped building external virtualbox guest modules because they are now included into the mainline kernel
- offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms
- offed building kernel-shredder because it is not buildable on kernel 5.10
- updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0)
It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4.
TODO: update kernel configs
TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
|
|
|
%ksob_mk_module_pkg -n 8821ce -s net/wireless -r rtl8821ce-blacklist
|
2021-10-03 16:35:09 +03:00
|
|
|
%ksob_mk_module_pkg -n 8821cu -s net/wireless
|
2021-10-07 00:45:03 +03:00
|
|
|
%ifarch %{ix86} %{x86_64}
|
|
|
|
%ksob_mk_module_pkg -n wl -s net/wireless -r broadcom-wl-aliases
|
2022-09-26 15:32:27 +03:00
|
|
|
%kroko_kmod_pkg -r %{kroko_release} -j %{nvidia_390_j} -n %{nvidia_390_n} -f %{flavour} -k %{kernelversion}.%{patchlevel} -m %{sublevel} -p %{kver_full} -s %{NAME} -c %{kmod_suffix}
|
2021-10-07 00:45:03 +03:00
|
|
|
%endif
|
2021-10-19 21:43:37 +03:00
|
|
|
%ifarch %{x86_64}
|
2022-09-26 15:32:27 +03:00
|
|
|
%kroko_kmod_pkg -r %{kroko_release} -j %{nvidia_470_j} -n %{nvidia_470_n} -f %{flavour} -k %{kernelversion}.%{patchlevel} -m %{sublevel} -p %{kver_full} -s %{NAME} -c %{kmod_suffix}
|
|
|
|
%kroko_kmod_pkg -r %{kroko_release} -j %{nvidia_510_j} -n %{nvidia_510_n} -f %{flavour} -k %{kernelversion}.%{patchlevel} -m %{sublevel} -p %{kver_full} -s %{NAME} -c %{kmod_suffix}
|
|
|
|
%kroko_kmod_pkg -r %{kroko_release} -j %{nvidia_515_j} -n %{nvidia_515_n} -f %{flavour} -k %{kernelversion}.%{patchlevel} -m %{sublevel} -p %{kver_full} -s %{NAME} -c %{kmod_suffix}
|
2021-10-19 21:43:37 +03:00
|
|
|
%endif
|
2020-07-29 10:59:41 +03:00
|
|
|
%ksob_mk_module_pkg -n xt_TRIPSO -s net -r tripso
|
2021-04-01 14:30:32 +03:00
|
|
|
%ksob_mk_module_pkg -n xt_so -s net -r ipt-so
|
2021-10-16 20:11:50 +03:00
|
|
|
%ksob_mk_module_pkg -n v4l2loopback -s drivers/media -r v4l2loopback
|
2020-07-29 10:59:41 +03:00
|
|
|
|
Update from 5.4 to 5.10.1
- rediffed most of patches, renamed files to easify further rediffs by git format-patch
- thanks to abf.io/kernels_stable for some patches for kernel 5.9
- using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much)
- pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD
- dropped patch adding sysctl to disable disk-based swap because it has not found any usage
- bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful
- keeping kernel libc headers in older kernels for now
- dropped building external virtualbox guest modules because they are now included into the mainline kernel
- offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms
- offed building kernel-shredder because it is not buildable on kernel 5.10
- updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0)
It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4.
TODO: update kernel configs
TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
|
|
|
%if %{with binary_shredder}
|
2020-11-27 23:00:06 +03:00
|
|
|
%ksob_mk_module_pkg -n shredder-kernel -s extra -r rosa-shredder-user
|
|
|
|
%endif
|
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
#-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
###############
|
|
|
|
# Virtualbox host
|
Update from 5.4 to 5.10.1
- rediffed most of patches, renamed files to easify further rediffs by git format-patch
- thanks to abf.io/kernels_stable for some patches for kernel 5.9
- using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much)
- pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD
- dropped patch adding sysctl to disable disk-based swap because it has not found any usage
- bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful
- keeping kernel libc headers in older kernels for now
- dropped building external virtualbox guest modules because they are now included into the mainline kernel
- offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms
- offed building kernel-shredder because it is not buildable on kernel 5.10
- updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0)
It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4.
TODO: update kernel configs
TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
|
|
|
|
|
|
|
%if %{with binary_virtualbox_host}
|
2020-07-29 10:59:41 +03:00
|
|
|
%ksob_mk_module_pkg -n vboxnetflt -s misc
|
|
|
|
%ksob_mk_module_pkg -n vboxnetadp -s misc
|
|
|
|
%ksob_mk_module_pkg -n vboxdrv -s misc
|
|
|
|
%ksob_mk_module_pkg -n vboxpci -s misc
|
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# A package which will pull all those modules
|
2021-05-03 15:56:13 +03:00
|
|
|
%package -n kernel-modules-virtualbox-host-%{ksob_kernel}
|
2022-03-09 19:02:02 +01:00
|
|
|
Summary: Meta package to pull VirtualBox host kernel modules for kernel-%{flavour}-%{kernelversion}.%{patchlevel}
|
2022-03-15 17:03:05 +03:00
|
|
|
Group: System/Kernel and hardware
|
2022-03-09 19:02:02 +01:00
|
|
|
Requires: kernel-module-vboxnetflt-%{ksob_kernel}
|
|
|
|
Requires: kernel-module-vboxnetadp-%{ksob_kernel}
|
|
|
|
Requires: kernel-module-vboxdrv-%{ksob_kernel}
|
|
|
|
Requires: kernel-module-vboxpci-%{ksob_kernel}
|
2020-07-29 10:59:41 +03:00
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
%description -n kernel-modules-virtualbox-host-%{ksob_kernel}
|
2022-03-09 19:02:02 +01:00
|
|
|
Meta package to pull VirtualBox host kernel modules for %{name}.
|
2020-07-29 10:59:41 +03:00
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
%files -n kernel-modules-virtualbox-host-%{ksob_kernel}
|
2020-07-29 10:59:41 +03:00
|
|
|
# empty
|
2022-03-09 19:02:02 +01:00
|
|
|
%endif
|
|
|
|
#End of ifarch x86
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
2020-07-29 10:59:41 +03:00
|
|
|
|
2020-08-06 17:26:48 +03:00
|
|
|
%if %{with nickel}
|
|
|
|
%ksob_mk_module_pkg -n nlkm -s misc
|
|
|
|
%ksob_mk_module_pkg -n memfreetest -s misc
|
|
|
|
%ksob_mk_module_pkg -n pcietest -s misc
|
|
|
|
%endif
|
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
%endif
|
|
|
|
# End of binary_extra_modules
|
2020-07-29 10:59:41 +03:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
#################################################################
|
2020-08-19 20:02:58 +03:00
|
|
|
|
|
|
|
%if %{with flow_abi}
|
|
|
|
%package -n kernel-%{kernelversion}.%{patchlevel}-rosa-flow-abi
|
2022-03-09 19:02:02 +01:00
|
|
|
Summary: Directory to install third-party binary kernel modules for kernels %{kernelversion}.%{patchlevel}.x
|
2022-03-15 17:03:05 +03:00
|
|
|
Group: System/Kernel and hardware
|
2020-08-19 20:02:58 +03:00
|
|
|
|
|
|
|
%description -n kernel-%{kernelversion}.%{patchlevel}-rosa-flow-abi
|
|
|
|
This package contains a directory to install third-party binary kernel modules for kernels %{kernelversion}.%{patchlevel}.x.
|
|
|
|
Some vendors provide binary-only kernel modules. They can put them into /lib/modules/%{kernelversion}.%{patchlevel}-rosa-flow-abi.
|
2022-03-09 19:02:02 +01:00
|
|
|
kmod tools will find them for kernels 5.4.x of "generic" and "nickel" flavours
|
|
|
|
but there is no guarantee that these modules will load and work correctly on
|
|
|
|
newer or older kernels then the ones they were build against.
|
2020-08-19 20:02:58 +03:00
|
|
|
|
|
|
|
We call this "flow ABI" because most ABIs are not changed between %{kernelversion}.%{patchlevel}.x releases,
|
|
|
|
but there are no specific guarantees. ABI may evolve and change.
|
|
|
|
We highly recommend to use DKMS and build third-party kernel modules from source for every kernel!
|
|
|
|
This package does nothing, just owns a directory for third-party binary kernel modules.
|
|
|
|
|
|
|
|
%files -n kernel-%{kernelversion}.%{patchlevel}-rosa-flow-abi
|
|
|
|
/lib/modules/%{kernelversion}.%{patchlevel}-rosa-flow-abi
|
2022-03-09 19:02:02 +01:00
|
|
|
%endif
|
|
|
|
# End of flow_abi
|
2020-08-19 20:02:58 +03:00
|
|
|
|
|
|
|
################################################
|
2020-03-13 20:35:12 +03:00
|
|
|
|
2013-11-16 00:27:01 +04:00
|
|
|
%prep
|
2022-03-09 19:02:02 +01:00
|
|
|
# Avoid accidental merge
|
2021-05-03 15:56:13 +03:00
|
|
|
%if 0%{?rpm5}
|
|
|
|
%{error:Package structure is for dnf, not for urpmi!}
|
|
|
|
%endif
|
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
%setup -q -n %{top_dir_name} -c
|
2020-03-13 20:35:12 +03:00
|
|
|
%if %{with uml}
|
|
|
|
cp -r %{src_dir} %{src_dir}.uml
|
|
|
|
%endif
|
2022-03-09 19:02:02 +01:00
|
|
|
cd %{src_dir}
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2020-11-26 18:48:55 +00:00
|
|
|
%autopatch -p1
|
2013-11-16 00:27:01 +04:00
|
|
|
|
|
|
|
#
|
|
|
|
# Setup Begin
|
|
|
|
#
|
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
##################################
|
2019-07-16 18:30:53 +03:00
|
|
|
# Kernel configuration
|
|
|
|
|
|
|
|
echo "Creating the kernel configuration file."
|
|
|
|
|
Revisited the set of kernel flavours and the generation of config files
Until now, the build system for the kernel supported a number of
flavours: nrj and non-nrj ones, desktop-, laptop-, server- and
netbook-oriented, etc.
It turned out over the years, however, that our users mostly need the
following:
* a kernel to use on the desktops (home and office use) with reasonable
default settings for performance and responsiveness;
* a kernel for laptops, with a bit more emphasis on power consumption.
Other variants were rarely used. We also did not have enough time to
properly support all these.
Besides, the kernels for ARM and other architectures need a somewhat
different build process than for x86. So, they are better off to be in
separate ABF projects, even if they are needed. No signs of ROSA on ARM
yet, btw.
So, I kept only nrj-desktop and nrj-laptop flavours and only x86.
Non-PAE systems also seem to be rare now, so I enabled PAE by default
for the 32-bit kernels. Non-PAE kernels are no longer built. If they are
needed, we may use a separate git branch or an ABF project for that.
To simplify debugging, maintenance and experimentation with the kernel
builds further, I revisited the process of preparing the kernel
configuration files. The goal is to get rid of a separate git repo with
the default configs (kernel-patches-and-configs) and keep everything in
this project.
The default config files are now kept here. For x86_64:
* kernel-x86_64.config contains the options for both nrj-desktop and
nrn-laptop flavours;
* kernel-{nrj_desktop|nrj_laptop}-x86_64.config files contain the
flavour-specific options.
This way, it is easier to track which config options changed when,
easier to experiment with the custom configs and so on.
The kernel will be built with debug info if rpmbuild is called with
"--with debug".
2016-07-21 13:56:25 +03:00
|
|
|
# Configs
|
2020-12-30 19:47:16 +03:00
|
|
|
cp %{SOURCE111} .
|
|
|
|
cp %{SOURCE112} .
|
|
|
|
cp %{SOURCE113} .
|
|
|
|
cp kernel-%{arch_suffix}.config .config
|
2019-07-16 18:30:53 +03:00
|
|
|
|
2020-03-13 20:51:12 +03:00
|
|
|
touch %{build_dir}/.config.append
|
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Get rid of unwanted files
|
2020-11-26 21:17:21 +00:00
|
|
|
find . -name '*~' -o -name '*.orig' -o -name '*.append' -delete
|
2022-03-09 19:02:02 +01:00
|
|
|
# Wipe all .gitignore/.get_maintainer.ignore files
|
2020-11-26 21:17:21 +00:00
|
|
|
find . -name "*.g*ignore" -delete
|
|
|
|
|
2022-07-11 16:39:46 +03:00
|
|
|
# Disable debug info if requested (enabled by default)
|
|
|
|
%if ! %build_debug
|
|
|
|
sed -i -e '/CONFIG_DEBUG_INFO/d' -e '/CONFIG_GDB_SCRIPTS/d' .config
|
|
|
|
echo '# CONFIG_DEBUG_INFO is not set' >> %{build_dir}/.config.append
|
|
|
|
echo '# CONFIG_GDB_SCRIPTS is not set' >> %{build_dir}/.config.append
|
2013-11-16 00:27:01 +04:00
|
|
|
%endif
|
|
|
|
|
2020-12-30 19:47:16 +03:00
|
|
|
sed -i '/CONFIG_MODULE_SIG_FORCE/d' .config
|
2019-11-21 21:17:42 +03:00
|
|
|
%if %{with oblig_signed_modules}
|
2019-11-11 17:47:53 +03:00
|
|
|
# Disallow loading not signed modules
|
2020-12-30 19:47:16 +03:00
|
|
|
# But 0001-ROSA-ima-allow-to-off-modules-signature-check-dynami.patch allows to override this in cmdline
|
2020-03-13 20:35:12 +03:00
|
|
|
echo CONFIG_MODULE_SIG_FORCE=y >> %{build_dir}/.config.append
|
2019-11-21 21:17:42 +03:00
|
|
|
%else
|
2020-03-13 20:35:12 +03:00
|
|
|
echo CONFIG_MODULE_SIG_FORCE=n >> %{build_dir}/.config.append
|
2019-11-21 21:17:42 +03:00
|
|
|
%endif
|
2020-12-30 19:47:16 +03:00
|
|
|
|
|
|
|
sed -i '/CONFIG_MODULE_SIG_KEY/d' .config
|
2019-12-01 02:03:15 +03:00
|
|
|
# Set path to the key that will be generated later by openssl/libressl
|
2020-03-13 20:35:12 +03:00
|
|
|
echo CONFIG_MODULE_SIG_KEY=\"%{certs_signing_key_priv_rnd}\" >> %{build_dir}/.config.append
|
2020-12-30 19:47:16 +03:00
|
|
|
|
2019-11-18 18:48:33 +03:00
|
|
|
# Set path to one PEM file with all keys that the kernel must trust
|
|
|
|
sed -i '/CONFIG_SYSTEM_TRUSTED_KEYS/d' .config
|
2020-03-13 20:35:12 +03:00
|
|
|
echo CONFIG_SYSTEM_TRUSTED_KEYS=\"%{certs_public_keys}\" >> %{build_dir}/.config.append
|
2020-12-30 19:47:16 +03:00
|
|
|
|
2019-11-14 01:08:33 +03:00
|
|
|
# Memory wiping
|
|
|
|
# Introduced in kernel 5.3 by commit 6471384af2a6530696fc0203bafe4de41a23c9ef
|
|
|
|
# Estimated performance impact is described in the commit
|
|
|
|
# "Fill newly allocated pages and heap objects with zeroes."
|
|
|
|
# To enable, add to cmdline: init_on_alloc=1
|
2020-03-18 22:20:03 +03:00
|
|
|
sed -i '/CONFIG_INIT_ON_ALLOC_DEFAULT_ON/d' .config
|
|
|
|
echo CONFIG_INIT_ON_ALLOC_DEFAULT_ON=n >> %{build_dir}/.config.append
|
2019-11-14 01:08:33 +03:00
|
|
|
# "Fill freed pages and heap objects with zeroes"
|
|
|
|
# To disable, add to cmdline: init_on_free=0
|
2020-03-18 22:20:03 +03:00
|
|
|
sed -i '/CONFIG_INIT_ON_FREE_DEFAULT_ON/d' .config
|
|
|
|
%if %{with nickel}
|
2020-03-13 20:35:12 +03:00
|
|
|
echo CONFIG_INIT_ON_FREE_DEFAULT_ON=y >> %{build_dir}/.config.append
|
2020-03-18 22:20:03 +03:00
|
|
|
%else
|
|
|
|
echo CONFIG_INIT_ON_FREE_DEFAULT_ON=n >> %{build_dir}/.config.append
|
|
|
|
%endif
|
2019-11-14 01:08:33 +03:00
|
|
|
# Here enabling only either only init_on_free or only init_on_alloc
|
|
|
|
# makes sense; init_on_alloc is not about protecting information.
|
2020-03-13 20:35:12 +03:00
|
|
|
|
2020-03-20 21:28:35 +03:00
|
|
|
# To load kernel keyring in UML
|
|
|
|
for i in STREEBOG SHA1 SHA256 SHA512 ECRDSA RSA ; do
|
2020-12-30 19:47:16 +03:00
|
|
|
if ! grep -q "^CONFIG_CRYPTO_${i}=y$" .config; then
|
|
|
|
sed -i "/CONFIG_CRYPTO_${i}/d" .config
|
|
|
|
echo "CONFIG_CRYPTO_${i}=y" >> %{build_dir}/.config.append
|
|
|
|
fi
|
2020-03-20 21:28:35 +03:00
|
|
|
done
|
2020-03-16 23:19:46 +03:00
|
|
|
|
2020-03-13 20:35:12 +03:00
|
|
|
cat %{build_dir}/.config.append >> .config
|
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
##################
|
|
|
|
# End of kernel config
|
|
|
|
|
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
# Store the config file in the appropriate directory.
|
2020-11-26 18:48:55 +00:00
|
|
|
CONFIG_DIR=arch/%{arch_type}/configs
|
Revisited the set of kernel flavours and the generation of config files
Until now, the build system for the kernel supported a number of
flavours: nrj and non-nrj ones, desktop-, laptop-, server- and
netbook-oriented, etc.
It turned out over the years, however, that our users mostly need the
following:
* a kernel to use on the desktops (home and office use) with reasonable
default settings for performance and responsiveness;
* a kernel for laptops, with a bit more emphasis on power consumption.
Other variants were rarely used. We also did not have enough time to
properly support all these.
Besides, the kernels for ARM and other architectures need a somewhat
different build process than for x86. So, they are better off to be in
separate ABF projects, even if they are needed. No signs of ROSA on ARM
yet, btw.
So, I kept only nrj-desktop and nrj-laptop flavours and only x86.
Non-PAE systems also seem to be rare now, so I enabled PAE by default
for the 32-bit kernels. Non-PAE kernels are no longer built. If they are
needed, we may use a separate git branch or an ABF project for that.
To simplify debugging, maintenance and experimentation with the kernel
builds further, I revisited the process of preparing the kernel
configuration files. The goal is to get rid of a separate git repo with
the default configs (kernel-patches-and-configs) and keep everything in
this project.
The default config files are now kept here. For x86_64:
* kernel-x86_64.config contains the options for both nrj-desktop and
nrn-laptop flavours;
* kernel-{nrj_desktop|nrj_laptop}-x86_64.config files contain the
flavour-specific options.
This way, it is easier to track which config options changed when,
easier to experiment with the custom configs and so on.
The kernel will be built with debug info if rpmbuild is called with
"--with debug".
2016-07-21 13:56:25 +03:00
|
|
|
mkdir -p "${CONFIG_DIR}"
|
|
|
|
|
2020-11-26 18:48:55 +00:00
|
|
|
cfg_file=arch/%{arch_type}/configs/%{arch_suffix}_defconfig-%{flavour}
|
2021-05-22 12:08:22 +03:00
|
|
|
|
|
|
|
make ARCH=%{arch_type} oldconfig
|
|
|
|
# When it is needed to edit kernel configs, run:
|
2021-06-01 07:01:02 +03:00
|
|
|
# abf fetch
|
|
|
|
# rpmbuild --define "_sourcedir $PWD" --with=fail -bb kernel.spec
|
2021-05-22 12:08:22 +03:00
|
|
|
# and then work with the config in the buildroot with applied patches etc.
|
|
|
|
%{?_with_fail:exit 1}
|
2019-07-16 18:30:53 +03:00
|
|
|
mv .config ${cfg_file}
|
|
|
|
echo "Created ${cfg_file}."
|
2016-07-22 16:37:05 +03:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Make sure the kernel has the sublevel we know it has...
|
2019-07-16 18:30:53 +03:00
|
|
|
LC_ALL=C sed -ri "s/^SUBLEVEL.*/SUBLEVEL = %{sublevel}/" Makefile
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Get rid of unwanted files
|
2013-11-16 00:27:01 +04:00
|
|
|
find . -name '*~' -o -name '*.orig' -o -name '*.append' | %kxargs rm -f
|
2015-10-13 10:17:01 +03:00
|
|
|
find . -name '.get_maintainer.ignore' | %kxargs rm -f
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Versionize python shebang (#!/usr/bin/env python -> #!/usr/bin/python3) in scripts
|
2022-03-17 10:23:10 +03:00
|
|
|
sed -i '1 s,^#!/usr/bin/env python$,#!%{__python3},' \
|
|
|
|
scripts/bloat-o-meter \
|
|
|
|
scripts/checkkconfigsymbols.py \
|
|
|
|
scripts/diffconfig \
|
|
|
|
scripts/jobserver-exec \
|
|
|
|
scripts/show_delta \
|
|
|
|
scripts/spdxcheck.py \
|
|
|
|
scripts/clang-tools/gen_compile_commands.py \
|
|
|
|
scripts/clang-tools/run-clang-tools.py \
|
|
|
|
scripts/tracing/draw_functrace.py \
|
|
|
|
tools/hv/vmbus_testing \
|
|
|
|
tools/kvm/kvm_stat/kvm_stat \
|
|
|
|
tools/perf/python/tracepoint.py \
|
|
|
|
tools/perf/python/twatch.py \
|
|
|
|
tools/power/pm-graph/bootgraph.py \
|
|
|
|
tools/power/pm-graph/sleepgraph.py \
|
|
|
|
tools/power/x86/intel_pstate_tracer/intel_pstate_tracer.py \
|
|
|
|
tools/testing/kunit/kunit.py \
|
|
|
|
tools/testing/kunit/kunit_tool_test.py \
|
|
|
|
tools/testing/selftests/bpf/test_offload.py \
|
|
|
|
tools/testing/selftests/drivers/net/mlxsw/sharedbuffer_configuration.py \
|
|
|
|
tools/testing/selftests/exec/binfmt_script \
|
|
|
|
tools/testing/selftests/net/devlink_port_split.py \
|
|
|
|
tools/testing/selftests/tc-testing/tdc.py \
|
|
|
|
tools/testing/selftests/tc-testing/tdc_batch.py \
|
|
|
|
tools/testing/selftests/tc-testing/tdc_multibatch.py \
|
|
|
|
Documentation/sphinx/kernel_include.py \
|
|
|
|
Documentation/sphinx/maintainers_include.py \
|
|
|
|
Documentation/sphinx/rstFlatTable.py \
|
|
|
|
Documentation/target/tcm_mod_builder.py
|
2022-03-09 19:02:02 +01:00
|
|
|
|
|
|
|
# Drop env from bash scripts
|
2022-03-17 10:23:10 +03:00
|
|
|
sed -i '1 s,^#!.*env .*,#!%{_bindir}/bash,' scripts/config
|
2022-03-09 19:02:02 +01:00
|
|
|
|
|
|
|
# Drop env from perl scripts
|
2022-03-17 10:23:10 +03:00
|
|
|
sed -i '1 s,^#!.*env .*,#!%{_bindir}/perl,' \
|
|
|
|
scripts/bootgraph.pl \
|
|
|
|
scripts/checkincludes.pl \
|
|
|
|
scripts/checkkconfigsymbols.py \
|
|
|
|
scripts/checkpatch.pl \
|
|
|
|
scripts/checkstack.pl \
|
|
|
|
scripts/checkversion.pl \
|
|
|
|
scripts/cleanfile \
|
|
|
|
scripts/cleanpatch \
|
|
|
|
scripts/documentation-file-ref-check \
|
|
|
|
scripts/export_report.pl \
|
|
|
|
scripts/extract-module-sig.pl \
|
|
|
|
scripts/extract-sys-certs.pl \
|
|
|
|
scripts/extract_xc3028.pl \
|
|
|
|
scripts/get_abi.pl \
|
|
|
|
scripts/get_dvb_firmware \
|
|
|
|
scripts/get_maintainer.pl \
|
|
|
|
scripts/headerdep.pl \
|
|
|
|
scripts/headers_check.pl \
|
|
|
|
scripts/kernel-doc \
|
|
|
|
scripts/leaking_addresses.pl \
|
|
|
|
scripts/markup_oops.pl \
|
|
|
|
scripts/profile2linkerlist.pl \
|
|
|
|
scripts/recordmcount.pl \
|
|
|
|
scripts/split-man.pl \
|
|
|
|
scripts/stackdelta \
|
|
|
|
scripts/dtc/dt_to_config \
|
|
|
|
scripts/kconfig/streamline_config.pl \
|
|
|
|
tools/testing/ktest/compare-ktest-sample.pl \
|
|
|
|
tools/testing/selftests/kselftest/prefix.pl \
|
|
|
|
Documentation/sphinx/parse-headers.pl
|
2022-03-09 19:02:02 +01:00
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
############################################################################
|
|
|
|
|
2013-11-16 00:27:01 +04:00
|
|
|
%build
|
2019-11-11 22:27:50 +03:00
|
|
|
# Ensure that build time generated private keys don't get published
|
|
|
|
# as e.g. "RPM build root" on ABF!
|
|
|
|
# Note that ABF sends SIGKILL to rpm-build.sh when the build is terminated;
|
|
|
|
# in this case trap will not work, but RPM build root also will not be
|
|
|
|
# saved because rpm-build.sh saves it, but it is SIGKILLed.
|
|
|
|
# For best security we could store private keys in RAM (not reachable from
|
|
|
|
# filesystem, so not in /tmp!) and override sth like fopen() by LD_PRELOAD
|
|
|
|
# to give the content of keys from RAM when a virtual address of a key file
|
|
|
|
# is accessed, but currently I don't know how to implement this (TODO: ).
|
|
|
|
_cleanup(){
|
2022-03-09 19:02:02 +01:00
|
|
|
# Show resulting kernel public keys for debugging
|
2020-03-14 22:02:48 +03:00
|
|
|
cat "%{src_dir}/%{certs_dir_rnd}/x509_certificate_list" | base64 -d || :
|
2020-03-14 13:49:15 +03:00
|
|
|
rm -fvr "%{src_dir}/%{certs_dir_rnd}"
|
2020-03-13 20:35:12 +03:00
|
|
|
%if %{with uml}
|
2020-03-14 22:02:48 +03:00
|
|
|
cat "%{src_dir}.uml/%{certs_dir_rnd}/x509_certificate_list" | base64 -d || :
|
2020-03-13 20:35:12 +03:00
|
|
|
rm -fvr "%{src_dir}.uml/%{certs_dir_rnd}"
|
|
|
|
%endif
|
2019-11-11 22:27:50 +03:00
|
|
|
}
|
|
|
|
# Make a trap to delete keys even if %%build fails in the middle
|
|
|
|
trap "_cleanup" EXIT
|
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
rm -rf %{temp_root}
|
|
|
|
install -d %{temp_root}
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
cd %{src_dir}
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2019-11-11 17:47:53 +03:00
|
|
|
### Keys for signing kernel modules
|
|
|
|
# Keys can be generated both manually and automatically,
|
|
|
|
# let's generate them by ourselves to take full control of the process
|
|
|
|
# https://www.ibm.com/support/knowledgecenter/en/SSB23S_1.1.0.13/gtps7/cfgcert.html
|
2019-11-17 16:09:47 +03:00
|
|
|
# See also certs/Makefile in kernel source
|
2019-11-11 17:47:53 +03:00
|
|
|
mkdir -p "%{certs_dir_rnd}"
|
2019-11-12 02:06:06 +03:00
|
|
|
|
|
|
|
# On ABF, %%packager == $username <$email>
|
|
|
|
# Try to extract email from %%packager if it is set
|
|
|
|
_get_email(){
|
|
|
|
# Check that macro %%packager was set and is not empty
|
|
|
|
if echo '%{packager}' | grep -q 'packager}$' || [ -z "%{packager}" ]
|
|
|
|
# If was not set or is empty, use default email
|
|
|
|
then echo 'rpmbuild@rosa.unknown' && return
|
|
|
|
# Otherwise try to extract email from 'name <email>' or sth else
|
|
|
|
else temp="$(echo '%{packager}' | tr '[:upper:]' '[:lower:]' | tr ' ' '\n' | tr -d '<>' | grep -E '@.*\..*' | head -n 1)"
|
|
|
|
fi
|
|
|
|
# Validate that what we have now is a valid email
|
|
|
|
# https://stackoverflow.com/a/2138832, https://stackoverflow.com/a/41192733
|
|
|
|
# Note that we set %%_buildshell to /bin/bash to guarantee the work of this bashism
|
|
|
|
regex_email="^[a-z0-9!#\$%&'*+/=?^_\`{|}~-]+(\.[a-z0-9!#$%&'*+/=?^_\`{|}~-]+)*@([a-z0-9]([a-z0-9-]*[a-z0-9])?\.)+[a-z0-9]([a-z0-9-]*[a-z0-9])?\$"
|
|
|
|
if [[ "$temp" =~ ${regex_email} ]]
|
|
|
|
# If it is, use it
|
|
|
|
then echo "$temp" && return
|
|
|
|
# Otherwise use default email
|
|
|
|
else echo 'rpmbuild@rosa.unknown' && return
|
|
|
|
fi
|
|
|
|
# If script above has not return'ed for any reason,
|
|
|
|
# e.g. because of non-bash shell being not able to
|
|
|
|
# process regexp, use default email
|
|
|
|
echo 'rpmbuild@rosa.unknown'
|
|
|
|
}
|
|
|
|
email="$(_get_email)"
|
|
|
|
|
2019-11-11 17:47:53 +03:00
|
|
|
cat <<EOF > "%{certs_key_config_rnd}"
|
|
|
|
[ req ]
|
|
|
|
prompt = no
|
2019-11-17 16:09:47 +03:00
|
|
|
string_mask = utf8only
|
2022-03-09 19:02:02 +01:00
|
|
|
#default_keyfile = %%{certs_signing_key_priv_rnd}
|
2019-11-11 17:47:53 +03:00
|
|
|
distinguished_name = req_distinguished_name
|
2019-11-17 16:09:47 +03:00
|
|
|
x509_extensions = myexts
|
2019-11-11 17:47:53 +03:00
|
|
|
[ req_distinguished_name ]
|
|
|
|
organizationName = %{vendor} rpmbuild
|
2020-03-18 23:36:11 +03:00
|
|
|
commonName = Build time autogenerated @ALGO@ kernel key
|
2019-11-12 02:06:06 +03:00
|
|
|
emailAddress = ${email}
|
2019-11-17 16:09:47 +03:00
|
|
|
[ myexts ]
|
|
|
|
basicConstraints=critical,CA:FALSE
|
|
|
|
keyUsage=digitalSignature
|
|
|
|
subjectKeyIdentifier=hash
|
|
|
|
authorityKeyIdentifier=keyid
|
2019-11-11 17:47:53 +03:00
|
|
|
EOF
|
|
|
|
cat "%{certs_key_config_rnd}"
|
2020-03-18 23:36:11 +03:00
|
|
|
sed -e 's,@ALGO@,RSA,g' "%{certs_key_config_rnd}" > "%{certs_key_config_rnd}.RSA"
|
|
|
|
sed -e 's,@ALGO@,GOST R 34.10-2012,g' "%{certs_key_config_rnd}" > "%{certs_key_config_rnd}.GOST"
|
2022-03-09 19:02:02 +01:00
|
|
|
# Avoid using the template
|
2020-03-18 23:36:11 +03:00
|
|
|
rm -f "%{certs_key_config_rnd}"
|
|
|
|
|
|
|
|
_libressl_gen_key(){
|
|
|
|
if [ "$GOST_KEY" = 1 ]
|
|
|
|
then
|
|
|
|
lssl_req_gost_args="\
|
|
|
|
-newkey gost2001 \
|
|
|
|
-pkeyopt dgst:streebog512 -pkeyopt paramset:A \
|
|
|
|
-streebog512"
|
|
|
|
OUT="%{certs_signing_key_priv_rnd}.GOST"
|
|
|
|
CONFIG="%{certs_key_config_rnd}.GOST"
|
|
|
|
else
|
|
|
|
lssl_req_gost_args=""
|
|
|
|
OUT="%{certs_signing_key_priv_rnd}.RSA"
|
|
|
|
CONFIG="%{certs_key_config_rnd}.RSA"
|
|
|
|
fi
|
|
|
|
libressl req -new -nodes -utf8 -batch \
|
|
|
|
$lssl_req_gost_args \
|
|
|
|
-days 109500 \
|
|
|
|
-x509 -config "$CONFIG" \
|
|
|
|
-out "$OUT" \
|
|
|
|
-keyout "$OUT"
|
|
|
|
|
|
|
|
# Verify
|
|
|
|
if [ "$GOST_KEY" = 1 ]; then
|
|
|
|
libressl x509 -in "%{certs_signing_key_priv_rnd}.GOST" -text -noout \
|
|
|
|
| grep -E 'Signature Algorithm:.*GOST R 34.10-2012'
|
|
|
|
libressl x509 -in "%{certs_signing_key_priv_rnd}.GOST" -text -noout \
|
|
|
|
| grep -E 'Digest Algorithm:.*GOST R 34-11-2012'
|
|
|
|
libressl x509 -in "%{certs_signing_key_priv_rnd}.GOST" -text -noout \
|
|
|
|
| grep -E 'Public Key Algorithm:.*GOST R 34.10-2012'
|
|
|
|
fi
|
|
|
|
}
|
2019-11-11 17:47:53 +03:00
|
|
|
|
2020-03-18 23:36:11 +03:00
|
|
|
GOST_KEY=0 _libressl_gen_key
|
|
|
|
GOST_KEY=1 _libressl_gen_key
|
|
|
|
# Fake CONFIG_MODULE_SIG_KEY to make build scripts happy
|
|
|
|
cp -v "%{certs_signing_key_priv_rnd}.RSA" "%{certs_signing_key_priv_rnd}"
|
2019-11-17 16:56:39 +03:00
|
|
|
|
2020-03-18 23:36:11 +03:00
|
|
|
# Strip public parts from the generated PEMs
|
2019-11-18 18:48:33 +03:00
|
|
|
sed -n \
|
2020-03-18 23:36:11 +03:00
|
|
|
'/^-----BEGIN CERTIFICATE-----$/,/^-----END CERTIFICATE-----$/p' \
|
|
|
|
"%{certs_signing_key_priv_rnd}.GOST" \
|
|
|
|
"%{certs_signing_key_priv_rnd}.RSA" \
|
|
|
|
> "%{certs_public_keys}"
|
2019-12-07 21:57:55 +03:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Link sign-file and extract-cert with LibreSSL instead of OpenSSL
|
2019-12-07 21:57:55 +03:00
|
|
|
if [ $? != 0 ] ; then exit $? ; fi
|
|
|
|
sed -i %{src_dir}/scripts/Makefile \
|
2020-03-13 20:35:12 +03:00
|
|
|
%if %{with uml}
|
2022-03-15 17:03:05 +03:00
|
|
|
%{src_dir}.uml/scripts/Makefile \
|
2020-03-13 20:35:12 +03:00
|
|
|
%endif
|
2021-02-22 13:17:43 +03:00
|
|
|
-e "s, libcrypto , libressl-libcrypto ,g"
|
2019-11-18 18:48:33 +03:00
|
|
|
|
2020-03-18 23:36:11 +03:00
|
|
|
%if %{with additional_keys}
|
2020-03-15 20:26:01 +03:00
|
|
|
# Add additional public RSA keys to the list of trusted keys for kernel modules
|
2019-11-17 16:56:39 +03:00
|
|
|
# Build kernel --without additional_keys if you do not want to trust them
|
2020-03-15 20:26:01 +03:00
|
|
|
cat %{expand:%(for i in `seq 1 12`; do echo "%%SOURCE$((200+${i}))" | tr "\n" " "; done)} \
|
|
|
|
>> "%{certs_public_keys}"
|
2022-03-09 19:02:02 +01:00
|
|
|
%endif
|
|
|
|
# End of additional_keys
|
2019-11-19 00:24:49 +03:00
|
|
|
cat %{certs_public_keys}
|
2019-11-11 17:47:53 +03:00
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
# .config
|
|
|
|
%smake -s mrproper
|
2020-11-26 18:48:55 +00:00
|
|
|
cp arch/%{arch_type}/configs/%{arch_suffix}_defconfig-%{flavour} .config
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Make sure EXTRAVERSION says what we want it to say
|
2019-07-16 18:30:53 +03:00
|
|
|
LC_ALL=C sed -ri "s/^EXTRAVERSION.*/EXTRAVERSION = -%{flavour}-%{buildrpmrel}/" Makefile
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Build the kernel
|
2019-07-16 18:30:53 +03:00
|
|
|
echo "Building kernel %{kver_full}"
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2020-11-26 21:09:27 +00:00
|
|
|
TARGETS="all"
|
|
|
|
# need to install dtbs to proper boot arm64 devices
|
2021-05-22 11:56:21 +03:00
|
|
|
%ifarch %{armx}
|
2020-11-26 21:09:27 +00:00
|
|
|
TARGETS="$TARGETS dtbs"
|
|
|
|
%endif
|
|
|
|
|
2021-02-23 17:35:52 +03:00
|
|
|
%kmake V=1 -s $TARGETS
|
2015-04-23 12:11:47 +03:00
|
|
|
|
2020-07-29 10:59:41 +03:00
|
|
|
# Install modules
|
|
|
|
mkdir -p %{temp_modules}/%{kver_full}
|
|
|
|
%smake INSTALL_MOD_PATH=%{temp_root} KERNELRELEASE=%{kver_full} modules_install
|
|
|
|
|
|
|
|
%if %{with binary_extra_modules}
|
|
|
|
# Build and install procedure is specific to each Makefile from kernmel-source-* packages
|
|
|
|
# See also: https://www.kernel.org/doc/html/latest/kbuild/modules.html
|
|
|
|
# Copy directory because write permissions are required
|
|
|
|
# `make modules_install` must be done before this, otherwise these copied files will be deleted
|
|
|
|
|
|
|
|
cp -r "$(rpm -q --qf '/usr/src/rtl8821ce-%%{VERSION}-%%{RELEASE}' kernel-source-rtl8821ce)" kernel-source-rtl8821ce
|
|
|
|
pushd kernel-source-rtl8821ce
|
|
|
|
%kmake KSRC=%{src_dir} M="$PWD"
|
|
|
|
mkdir -p %{temp_modules}/%{kver_full}/kernel/net/wireless/
|
|
|
|
cp 8821ce.ko %{temp_modules}/%{kver_full}/kernel/net/wireless/8821ce.ko
|
|
|
|
popd
|
|
|
|
rm -fr kernel-source-rtl8821ce
|
|
|
|
|
2021-10-03 16:35:09 +03:00
|
|
|
cp -r "$(rpm -q --qf '/usr/src/rtl8821cu-%%{VERSION}-%%{RELEASE}' kernel-source-rtl8821cu)" kernel-source-rtl8821cu
|
|
|
|
pushd kernel-source-rtl8821cu
|
|
|
|
%kmake KSRC=%{src_dir} M="$PWD"
|
|
|
|
mkdir -p %{temp_modules}/%{kver_full}/kernel/net/wireless/
|
|
|
|
cp 8821cu.ko %{temp_modules}/%{kver_full}/kernel/net/wireless/8821cu.ko
|
|
|
|
popd
|
|
|
|
rm -fr kernel-source-rtl8821cu
|
|
|
|
|
2021-10-19 21:43:37 +03:00
|
|
|
_build_nvidia(){
|
|
|
|
cp -r "$(rpm -q --qf "/usr/src/nvidia${1}-%%{VERSION}-%%{RELEASE}" kernel-source-nvidia${1})" kernel-source-nvidia${1}
|
|
|
|
pushd kernel-source-nvidia${1}
|
|
|
|
%make SYSSRC=%{src_dir}
|
2022-09-26 15:32:27 +03:00
|
|
|
mkdir -p %{temp_modules}/%{kver_full}/kernel/drivers/video/nvidia${1}.%{kroko_release}
|
|
|
|
for i in *.ko
|
|
|
|
do
|
|
|
|
# put them here to extract debug and compress, will be moved later
|
|
|
|
install -m0644 "$i" %{temp_modules}/%{kver_full}/kernel/drivers/video/nvidia${1}.%{kroko_release}/"$i"
|
|
|
|
done
|
2021-10-19 21:43:37 +03:00
|
|
|
popd
|
|
|
|
rm -fr kernel-source-nvidia${1}
|
2022-09-26 15:32:27 +03:00
|
|
|
# for rosa-kernel-tools
|
|
|
|
mkdir -p %{temp_root}/var/spool/initramfs-regen
|
|
|
|
touch %{temp_root}/var/spool/initramfs-regen/nvidia${1}.%{kroko_release}
|
2021-10-19 21:43:37 +03:00
|
|
|
}
|
|
|
|
|
2021-10-07 00:45:03 +03:00
|
|
|
%ifarch %{ix86} %{x86_64}
|
|
|
|
cp -r "$(rpm -q --qf '/usr/src/broadcom-wl-%%{VERSION}-%%{RELEASE}' kernel-source-broadcom-wl)" kernel-source-broadcom-wl
|
|
|
|
pushd kernel-source-broadcom-wl
|
|
|
|
%kmake -C %{src_dir} M="$PWD"
|
|
|
|
mkdir -p %{temp_modules}/%{kver_full}/kernel/net/wireless/
|
|
|
|
cp wl.ko %{temp_modules}/%{kver_full}/kernel/net/wireless/wl.ko
|
|
|
|
popd
|
|
|
|
rm -fr kernel-source-broadcom-wl
|
2021-10-10 16:12:22 +03:00
|
|
|
|
2021-10-19 21:43:37 +03:00
|
|
|
_build_nvidia 390
|
|
|
|
%endif
|
|
|
|
|
|
|
|
%ifarch %{x86_64}
|
|
|
|
_build_nvidia 470
|
2022-05-04 10:07:56 +03:00
|
|
|
_build_nvidia 510
|
2022-05-28 12:25:23 +03:00
|
|
|
_build_nvidia 515
|
2021-10-07 00:45:03 +03:00
|
|
|
%endif
|
|
|
|
|
2020-07-29 10:59:41 +03:00
|
|
|
cp -r "$(rpm -q --qf '/usr/src/tripso-%%{VERSION}-%%{RELEASE}' kernel-source-tripso)" kernel-source-tripso
|
|
|
|
pushd kernel-source-tripso
|
|
|
|
%kmake KDIR=%{src_dir}
|
|
|
|
mkdir -p %{temp_modules}/%{kver_full}/kernel/net
|
|
|
|
cp xt_TRIPSO.ko %{temp_modules}/%{kver_full}/kernel/net/
|
|
|
|
popd
|
|
|
|
rm -fr kernel-source-tripso
|
|
|
|
|
2021-04-01 14:30:32 +03:00
|
|
|
cp -r "$(rpm -q --qf '/usr/src/ipt-so-%%{VERSION}-%%{RELEASE}' kernel-source-ipt-so)" kernel-source-ipt-so
|
|
|
|
pushd kernel-source-ipt-so
|
|
|
|
%kmake KDIR=%{src_dir}
|
|
|
|
mkdir -p %{temp_modules}/%{kver_full}/kernel/net
|
|
|
|
cp xt_so.ko %{temp_modules}/%{kver_full}/kernel/net/
|
|
|
|
popd
|
|
|
|
rm -fr kernel-source-ipt-so
|
|
|
|
|
Update from 5.4 to 5.10.1
- rediffed most of patches, renamed files to easify further rediffs by git format-patch
- thanks to abf.io/kernels_stable for some patches for kernel 5.9
- using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much)
- pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD
- dropped patch adding sysctl to disable disk-based swap because it has not found any usage
- bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful
- keeping kernel libc headers in older kernels for now
- dropped building external virtualbox guest modules because they are now included into the mainline kernel
- offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms
- offed building kernel-shredder because it is not buildable on kernel 5.10
- updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0)
It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4.
TODO: update kernel configs
TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
|
|
|
%if %{with binary_shredder}
|
2020-11-26 21:09:27 +00:00
|
|
|
cp -r "$(rpm -q --qf '/usr/src/shredder-kernel-%%{VERSION}-%%{RELEASE}' kernel-source-shredder-kernel)" kernel-source-shredder-kernel
|
|
|
|
pushd kernel-source-shredder-kernel
|
|
|
|
%kmake KERNEL_PATH=%{src_dir}
|
|
|
|
mkdir -p %{temp_modules}/%{kver_full}/kernel/extra/
|
|
|
|
cp shredder-kernel.ko %{temp_modules}/%{kver_full}/kernel/extra/
|
|
|
|
popd
|
|
|
|
rm -fr kernel-source-shredder-kernel
|
2020-11-27 23:00:06 +03:00
|
|
|
%endif
|
2020-11-26 21:09:27 +00:00
|
|
|
|
Update from 5.4 to 5.10.1
- rediffed most of patches, renamed files to easify further rediffs by git format-patch
- thanks to abf.io/kernels_stable for some patches for kernel 5.9
- using unofficial patch for AUFS for kernel 5.10, there may be issues with stability, try to avoid using AUFS (I would have dropped it, but MagOS wants it very much)
- pulled updates of AltHa from http://git.altlinux.org/gears/k/kernel-image-un-def.git?p=kernel-image-un-def.git;a=history;f=security/altha;hb=HEAD
- dropped patch adding sysctl to disable disk-based swap because it has not found any usage
- bpf is now in the list of LSM modules (ability to write LSM modules as BPF programs), enable it, it is potentially useful and does not seem to be harmful
- keeping kernel libc headers in older kernels for now
- dropped building external virtualbox guest modules because they are now included into the mainline kernel
- offed building VirtualBox host modules, I do not know how to keep these binary modules in sync with userspace part of VirtualBox, users can continue using dkms
- offed building kernel-shredder because it is not buildable on kernel 5.10
- updated rtl8821ce and added a dependency from its "blacklist" subpackage here (see https://github.com/tomaspinho/rtl8821ce/commit/14b536f0)
It is not clear if kernel 5.10 will receive an LTS support longer than 5.4 or not. Support until Dec, 2022 is declared right now at https://www.kernel.org/category/releases.html for 5.10 and until Dec, 2025 - for 5.4.
TODO: update kernel configs
TODO: solve problems with version of virtualbox host modules not matching version of the virtualbox package after virtualbox is updated but kernel is not rebuilt
2020-12-20 18:49:24 +03:00
|
|
|
%if %{with binary_virtualbox_host}
|
2020-11-26 21:09:27 +00:00
|
|
|
# build commands for virtualbox are based on the ones from the virtualbox package
|
2020-07-29 10:59:41 +03:00
|
|
|
cp -r "$(rpm -q --qf '/usr/src/virtualbox-%%{VERSION}-%%{RELEASE}' kernel-source-virtualbox)" kernel-source-virtualbox
|
|
|
|
mkdir -p %{temp_modules}/%{kver_full}/kernel/misc/
|
|
|
|
pushd kernel-source-virtualbox
|
|
|
|
make -C vboxdrv KERN_DIR=%{src_dir} KERN_VER=%{kver_full}
|
|
|
|
cp -fv vboxdrv/Module.symvers vboxnetflt
|
|
|
|
cp -fv vboxdrv/Module.symvers vboxnetadp
|
|
|
|
make -C vboxnetflt KERN_DIR=%{src_dir} KERN_VER=%{kver_full}
|
|
|
|
make -C vboxnetadp KERN_DIR=%{src_dir} KERN_VER=%{kver_full}
|
|
|
|
cp -fv vboxnetadp/Module.symvers vboxpci/
|
|
|
|
make -C vboxpci KERN_DIR=%{src_dir} KERN_VER=%{kver_full}
|
|
|
|
for i in vboxnetflt vboxnetadp vboxdrv vboxpci
|
|
|
|
do
|
|
|
|
cp -v "${i}/${i}.ko" %{temp_modules}/%{kver_full}/kernel/misc/
|
|
|
|
done
|
|
|
|
popd
|
2020-11-26 18:58:01 +00:00
|
|
|
%endif
|
2020-07-29 10:59:41 +03:00
|
|
|
|
2021-10-16 20:11:50 +03:00
|
|
|
cp -r "$(rpm -q --qf '/usr/src/v4l2loopback-%%{VERSION}-%%{RELEASE}' kernel-source-v4l2loopback)" kernel-source-v4l2loopback
|
|
|
|
pushd kernel-source-v4l2loopback
|
|
|
|
cat Kbuild > Makefile
|
|
|
|
mkdir -p %{temp_modules}/%{kver_full}/kernel/drivers/media
|
|
|
|
make -C %{src_dir} M="$PWD" modules
|
|
|
|
cp v4l2loopback.ko %{temp_modules}/%{kver_full}/kernel/drivers/media
|
|
|
|
pushd
|
|
|
|
rm -fr kernel-source-v4l2loopback
|
|
|
|
|
2020-08-06 17:26:48 +03:00
|
|
|
%if %{with nickel}
|
|
|
|
# rosa-test-suite uses /sr/src/xxx-version, not /usr/src/xxx-version-release
|
|
|
|
cp -r "$(rpm -q --qf '/usr/src/rosa-test-suite-%%{VERSION}' kernel-source-rosa-test-suite)" kernel-source-rosa-test-suite
|
|
|
|
pushd kernel-source-rosa-test-suite
|
|
|
|
mkdir -p %{temp_modules}/%{kver_full}/kernel/misc/
|
|
|
|
for i in nlkm memfreetest pcietest
|
|
|
|
do
|
|
|
|
cat << EOF > Makefile
|
|
|
|
obj-m := ${i}.o
|
|
|
|
all:
|
|
|
|
make -C %{src_dir} M=\$(PWD) modules
|
|
|
|
EOF
|
|
|
|
%kmake
|
|
|
|
cp -fv ${i}.ko %{temp_modules}/%{kver_full}/kernel/misc/
|
|
|
|
done
|
|
|
|
popd
|
2022-03-09 19:02:02 +01:00
|
|
|
%endif
|
|
|
|
# End with nickel <- with binary_extra_modules
|
2020-08-06 17:26:48 +03:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
%endif
|
|
|
|
# End with binary_extra_modules
|
2020-07-29 10:59:41 +03:00
|
|
|
|
2020-03-13 20:35:12 +03:00
|
|
|
%if %{with uml}
|
|
|
|
cp -rv %{certs_dir_rnd} %{src_dir}.uml/
|
|
|
|
pushd %{src_dir}.uml
|
2020-12-31 14:30:14 +03:00
|
|
|
%kmake ARCH=um defconfig
|
2020-03-13 20:35:12 +03:00
|
|
|
%kmake ARCH=um linux
|
|
|
|
install -Dm0755 linux %{temp_root}%{_bindir}/linux-uml-%{kver_full}
|
|
|
|
#rm -fv linux
|
|
|
|
%kmake V=1 ARCH=um modules
|
|
|
|
mkdir -p %{temp_root}/lib/modules-uml/%{kver_full}/
|
|
|
|
%kmake ARCH=um INSTALL_MOD_PATH=%{temp_root}/lib/modules-uml/%{kver_full}/ modules_install
|
|
|
|
popd
|
|
|
|
%endif
|
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
install -d %{temp_boot}
|
|
|
|
install -m 644 System.map %{temp_boot}/System.map-%{kver_full}
|
|
|
|
install -m 644 .config %{temp_boot}/config-%{kver_full}
|
2022-03-15 17:03:05 +03:00
|
|
|
%if %{with modxz}
|
2022-03-09 19:02:02 +01:00
|
|
|
xz -c Module.symvers > %{temp_boot}/symvers-%{kver_full}.xz
|
2022-03-15 17:03:05 +03:00
|
|
|
%else
|
|
|
|
%{zstd_cmd} Module.symvers
|
|
|
|
install -m 644 Module.symvers.zst %{temp_boot}/symvers-%{kver_full}.zst
|
|
|
|
%endif
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2021-04-06 19:36:12 +00:00
|
|
|
%ifarch %{armx}
|
2021-05-22 11:56:21 +03:00
|
|
|
%make_build ARCH=%{arch_type} V=1 INSTALL_DTBS_PATH=%{temp_boot}/dtb-%{kver_full} dtbs_install
|
2021-04-06 19:36:12 +00:00
|
|
|
%endif
|
|
|
|
|
2020-11-26 21:09:27 +00:00
|
|
|
%ifarch aarch64
|
|
|
|
cp -f arch/arm64/boot/Image.gz %{temp_boot}/vmlinuz-%{kver_full}
|
|
|
|
%else
|
|
|
|
cp -f arch/%{arch_type}/boot/bzImage %{temp_boot}/vmlinuz-%{kver_full}
|
|
|
|
%endif
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Headers
|
2019-07-16 18:30:53 +03:00
|
|
|
%if %{build_headers}
|
|
|
|
%make INSTALL_HDR_PATH=%{temp_root}%{_prefix} KERNELRELEASE=%{kver_full} headers_install
|
|
|
|
find %{temp_root}%{_prefix} -name .install -or -name ..install.cmd | %kxargs rm -f
|
2013-11-16 00:27:01 +04:00
|
|
|
%endif
|
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Remove /lib/firmware, we use a separate linux-firmware package
|
2019-07-16 18:30:53 +03:00
|
|
|
rm -rf %{temp_root}/lib/firmware
|
2014-12-11 19:36:25 +03:00
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
# Prepare the files for kernel*-devel
|
2022-03-09 19:02:02 +01:00
|
|
|
%if %{build_devel}
|
2014-12-11 19:36:25 +03:00
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
mkdir -p %{temp_devel_root}
|
|
|
|
for i in $(find . -name 'Makefile*'); do cp -R --parents $i %{temp_devel_root}; done
|
|
|
|
for i in $(find . -name 'Kconfig*' -o -name 'Kbuild*'); do cp -R --parents $i %{temp_devel_root}; done
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
cp -fR include %{temp_devel_root}
|
2014-12-11 19:36:25 +03:00
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
cp -fR scripts %{temp_devel_root}
|
|
|
|
cp -fR kernel/bounds.c %{temp_devel_root}/kernel
|
|
|
|
cp -fR kernel/time/timeconst.bc %{temp_devel_root}/kernel/time
|
|
|
|
cp -fR tools %{temp_devel_root}/
|
2020-11-26 18:48:55 +00:00
|
|
|
cp -fR arch/%{arch_type}/kernel/asm-offsets.{c,s} %{temp_devel_root}/arch/%{arch_type}/kernel/
|
2020-11-26 21:09:27 +00:00
|
|
|
%ifarch %{ix86} %{x86_64}
|
2020-11-26 18:48:55 +00:00
|
|
|
cp -fR arch/%{arch_type}/kernel/asm-offsets_{32,64}.c %{temp_devel_root}/arch/%{arch_type}/kernel/
|
|
|
|
cp -fR arch/%{arch_type}/purgatory/* %{temp_devel_root}/arch/%{arch_type}/purgatory/
|
2022-03-09 19:02:02 +01:00
|
|
|
# Needed for arch/x86/purgatory
|
2020-11-26 21:09:27 +00:00
|
|
|
cp -fR lib/*.h lib/*.c %{temp_devel_root}/lib/
|
2020-11-26 18:48:55 +00:00
|
|
|
cp -fR arch/%{arch_type}/entry/syscalls/syscall* %{temp_devel_root}/arch/%{arch_type}/entry/syscalls/
|
|
|
|
cp -fR arch/%{arch_type}/tools %{temp_devel_root}/arch/%{arch_type}/
|
2020-11-26 21:09:27 +00:00
|
|
|
# needed for kexec
|
|
|
|
cp -fR arch/%{arch_type}/boot/*.h %{temp_devel_root}/arch/%{arch_type}/boot/
|
|
|
|
cp -fR arch/%{arch_type}/boot/*.c %{temp_devel_root}/arch/%{arch_type}/boot/
|
|
|
|
%endif
|
|
|
|
cp -fR arch/%{arch_type}/include %{temp_devel_root}/arch/%{arch_type}/
|
2019-07-16 18:30:53 +03:00
|
|
|
cp -fR .config Module.symvers %{temp_devel_root}
|
2014-12-11 19:36:25 +03:00
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
# Needed for truecrypt build (Danny)
|
|
|
|
cp -fR drivers/md/dm.h %{temp_devel_root}/drivers/md/
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
# Needed for lirc_gpio (#39004)
|
|
|
|
cp -fR drivers/media/pci/bt8xx/bttv{,p}.h %{temp_devel_root}/drivers/media/pci/bt8xx/
|
|
|
|
cp -fR drivers/media/pci/bt8xx/bt848.h %{temp_devel_root}/drivers/media/pci/bt8xx/
|
|
|
|
cp -fR drivers/media/common/btcx-risc.h %{temp_devel_root}/drivers/media/common/
|
2017-03-13 18:10:33 +03:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Add acpica header files, needed for fglrx build
|
2019-07-16 18:30:53 +03:00
|
|
|
cp -fR drivers/acpi/acpica/*.h %{temp_devel_root}/drivers/acpi/acpica/
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
%if %{with aufs}
|
2019-07-16 18:30:53 +03:00
|
|
|
# aufs2 has a special file needed
|
2019-12-16 16:12:07 +03:00
|
|
|
cp -fR fs/aufs/magic.mk %{temp_devel_root}/fs/aufs
|
2022-03-09 19:02:02 +01:00
|
|
|
%endif
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
# SELinux needs security/selinux/include
|
|
|
|
cp -fR security/selinux/include %{temp_devel_root}/security/selinux
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
for i in alpha arc avr32 blackfin c6x cris csky frv h8300 hexagon ia64 m32r m68k m68knommu metag microblaze \
|
|
|
|
mips mn10300 nds32 nios2 openrisc parisc powerpc riscv s390 score sh sparc tile unicore32 xtensa; do
|
|
|
|
rm -rf %{temp_devel_root}/arch/$i
|
|
|
|
done
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
# Clean the scripts tree, and make sure everything is ok (sanity check)
|
|
|
|
# running prepare+scripts (tree was already "prepared" in build)
|
2020-03-14 13:49:15 +03:00
|
|
|
pushd %{temp_devel_root}
|
2020-11-26 21:09:27 +00:00
|
|
|
%smake V=1 -s clean ARCH=%{arch_type}
|
2020-03-14 13:49:15 +03:00
|
|
|
popd
|
2020-11-26 21:09:27 +00:00
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
rm -f %{temp_devel_root}/.config.old
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Fix permissions
|
2019-07-16 18:30:53 +03:00
|
|
|
chmod -R a+rX %{temp_devel_root}
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Disable mrproper in -devel rpms
|
2019-07-16 18:30:53 +03:00
|
|
|
patch -p1 --fuzz=0 -d %{temp_devel_root} -i %{SOURCE2}
|
2013-11-16 00:27:01 +04:00
|
|
|
%endif
|
2022-03-09 19:02:02 +01:00
|
|
|
# End of build_devel
|
|
|
|
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2021-05-03 15:56:13 +03:00
|
|
|
# TODO: maybe move to /usr/lib/debug?
|
2022-03-09 19:02:02 +01:00
|
|
|
%if %{build_debug}
|
2019-07-16 18:30:53 +03:00
|
|
|
find %{temp_modules}/%{kver_full}/kernel \
|
|
|
|
-name "*.ko" | \
|
|
|
|
%kxargs -I '{}' objcopy --only-keep-debug '{}' '{}'.debug
|
|
|
|
find %{temp_modules}/%{kver_full}/kernel \
|
|
|
|
-name "*.ko" | %kxargs -I '{}' \
|
|
|
|
sh -c 'cd `dirname {}`; \
|
|
|
|
objcopy --add-gnu-debuglink=`basename {}`.debug \
|
|
|
|
--strip-debug `basename {}`'
|
2022-03-09 19:02:02 +01:00
|
|
|
%endif
|
|
|
|
# End of build_debug
|
2019-07-16 18:30:53 +03:00
|
|
|
|
2020-07-29 10:59:41 +03:00
|
|
|
# https://patchwork.kernel.org/patch/11446123/
|
2019-12-07 21:57:55 +03:00
|
|
|
_libressl_sign(){
|
|
|
|
if [ ! -f "$1" ]; then
|
2022-03-15 17:03:05 +03:00
|
|
|
echo "No file $1"
|
|
|
|
return 0
|
2019-12-07 21:57:55 +03:00
|
|
|
fi
|
|
|
|
f="$1"
|
2020-03-18 23:36:11 +03:00
|
|
|
%if %{with gost_sign}
|
2020-03-29 01:07:43 +03:00
|
|
|
%{src_dir}/scripts/sign-file streebog512 \
|
|
|
|
"%{certs_signing_key_priv_rnd}.GOST" "%{certs_signing_key_priv_rnd}.GOST" "$f"
|
2020-03-15 20:26:01 +03:00
|
|
|
%else
|
|
|
|
%{src_dir}/scripts/sign-file sha512 \
|
2020-03-20 11:27:35 +03:00
|
|
|
"%{certs_signing_key_priv_rnd}.RSA" "%{certs_signing_key_priv_rnd}.RSA" "$f"
|
2020-03-15 20:26:01 +03:00
|
|
|
%endif
|
2019-12-07 21:57:55 +03:00
|
|
|
unset f
|
|
|
|
}
|
|
|
|
export -f _libressl_sign
|
2020-03-13 20:35:12 +03:00
|
|
|
find %{temp_modules}/%{kver_full}/kernel \
|
|
|
|
%if %{with uml}
|
2022-03-15 17:03:05 +03:00
|
|
|
%{temp_root}/lib/modules-uml/%{kver_full} \
|
2020-03-13 20:35:12 +03:00
|
|
|
%endif
|
|
|
|
-name '*.ko' -print0 | sort -u | \
|
2019-12-07 21:57:55 +03:00
|
|
|
xargs --null -P "$(nproc)" -I {} "$SHELL" -e -x -c 'if ! _libressl_sign "{}"; \
|
|
|
|
then echo Failed _libressl_sign on "{}" && exit 1; fi'
|
2019-11-13 17:35:59 +03:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Set extraversion to match srpm to get nice version reported by the tools
|
2019-07-16 18:30:53 +03:00
|
|
|
LC_ALL=C sed -ri "s/^EXTRAVERSION.*/EXTRAVERSION = -%{fullrpmrel}/" Makefile
|
2013-11-16 00:27:01 +04:00
|
|
|
|
|
|
|
%if %{build_perf}
|
2020-12-27 23:26:55 +03:00
|
|
|
%smake -C tools/perf -s PYTHON=%{__python3} HAVE_CPLUS_DEMANGLE=1 WERROR=0 prefix=%{_prefix} lib=%{_lib} NO_GTK2=1 all
|
2020-11-27 01:21:49 +03:00
|
|
|
%smake -C tools/perf -s prefix=%{_prefix} lib=%{_lib} NO_GTK2=1 man
|
2013-11-16 00:27:01 +04:00
|
|
|
%endif
|
|
|
|
|
|
|
|
%if %{build_cpupower}
|
2022-03-09 19:02:02 +01:00
|
|
|
# Make sure version-gen.sh is executable.
|
2013-11-16 00:27:01 +04:00
|
|
|
chmod +x tools/power/cpupower/utils/version-gen.sh
|
2014-01-23 11:57:37 +04:00
|
|
|
%make -C tools/power/cpupower CPUFREQ_BENCH=false
|
2013-11-16 00:27:01 +04:00
|
|
|
%endif
|
|
|
|
|
2019-11-11 22:27:50 +03:00
|
|
|
_cleanup
|
2022-03-09 19:02:02 +01:00
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
############################################################################
|
2013-11-16 00:27:01 +04:00
|
|
|
|
|
|
|
%install
|
2022-03-09 19:02:02 +01:00
|
|
|
cd %{src_dir}
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2022-09-26 15:32:27 +03:00
|
|
|
# TODO: get rid of temporary directory, install to buildroot directly?
|
2013-11-16 00:27:01 +04:00
|
|
|
# We want to be able to test several times the install part
|
|
|
|
rm -rf %{buildroot}
|
|
|
|
cp -a %{temp_root} %{buildroot}
|
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
#if %%{with oblig_signed_modules}
|
|
|
|
# Multithreaded verification that every kernel module has a signature attached to it
|
2019-11-11 21:16:01 +03:00
|
|
|
mkdir -p "%{certs_dir_rnd}"
|
2019-11-14 01:26:18 +03:00
|
|
|
touch %{certs_verify_tmp}
|
2019-11-11 21:16:01 +03:00
|
|
|
_verify_signature(){
|
|
|
|
if [ -z "$1" ] || [ ! -f "$1" ]; then return; fi
|
2022-03-15 17:03:05 +03:00
|
|
|
if hexdump -C "$1" | rev | cut -f 2 -d '|' | rev | tr -d '\n' | grep -q '~Module signature appended~'; then
|
|
|
|
if [ -f %{certs_verify_tmp} ]; then
|
|
|
|
rm -f %{certs_verify_tmp}
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo "ERROR: Module $1 has no signature attached to it!"
|
|
|
|
exit 1
|
2019-11-11 21:16:01 +03:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
export -f _verify_signature
|
2020-03-13 20:35:12 +03:00
|
|
|
find %{target_modules} \
|
|
|
|
%if %{with uml}
|
2022-03-15 17:03:05 +03:00
|
|
|
%{buildroot}/lib/modules-uml/%{kver_full} \
|
2020-03-13 20:35:12 +03:00
|
|
|
%endif
|
|
|
|
-name '*.ko' -print0 | sort -u | \
|
2019-11-11 23:48:27 +03:00
|
|
|
xargs --null -P "$(nproc)" -I {} "$SHELL" -c '_verify_signature "{}"'
|
2019-11-14 01:26:18 +03:00
|
|
|
if [ -f %{certs_verify_tmp} ]; then
|
2019-11-11 21:16:01 +03:00
|
|
|
echo "ERROR: seems that signatures of none modules were verified!"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
rm -f %{certs_verify_tmp}
|
2022-03-09 19:02:02 +01:00
|
|
|
#endif
|
2019-11-11 21:16:01 +03:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Compressing modules
|
2022-03-15 17:03:05 +03:00
|
|
|
%if %{with compress_modules}
|
2021-05-04 15:17:47 +03:00
|
|
|
# Tested on /lib/modules/5.10.34-generic-2rosa2019.1-x86_64, the results are the following:
|
|
|
|
# * decompressed: 266.3 MiB
|
|
|
|
# * xz -9 --extreme: 67.8 MiB
|
|
|
|
# * zstd --ultra -22 without training: 73.5 MiB
|
|
|
|
# * zstd -6 without training: 79.6 MiB
|
|
|
|
# * zstd --ultra -22 with training: 66.3 MiB (the winner!)
|
|
|
|
# Training takes only a few minutes, make it here in place with current zstd and kernel modules.
|
|
|
|
# But! Decompressing also requires a dictionary for zstd, that will be too complex, so not using training :(
|
|
|
|
# We already use zstd in dracut to compress initrds quickly and with good compression ration.
|
|
|
|
# Testing speed of loading modules:
|
|
|
|
# `time modinfo bcache.ko.xz` took 0,048s, `time modinfo bcache.ko.zstd` took 0,014s (for multiple times)
|
|
|
|
# find /lib/modules/5.10.34-generic-2rosa2019.1-x86_64 -type f -name '*.ko.zst' > /tmp/zst.list
|
|
|
|
# time { for i in `cat /tmp/zst.list`; do modinfo $i >/dev/null 2>&1; done ;}
|
|
|
|
# took ~31-40s, with disk cache (2+ runs) ~33s
|
|
|
|
# find /lib/modules/5.10.34-generic-1rosa2019.1-x86_64 -type f -name '*.ko.xz' > /tmp/xz.list
|
|
|
|
# time { for i in `cat /tmp/xz.list`; do modinfo $i >/dev/null 2>&1; done ;}
|
2022-03-09 19:02:02 +01:00
|
|
|
# took 43-47s, with disk cache (2+ runs) ~42s, +21%%
|
2021-05-04 15:17:47 +03:00
|
|
|
# zstd-compressed initramfs image initrd-5.10.34-generic-1rosa2019.1-x86_64.img with *.ko.xz is 56,3 MiB
|
2022-03-09 19:02:02 +01:00
|
|
|
# zstd-compressed initramfs image initrd-5.10.34-generic-2rosa2019.1-x86_64.img with *.ko.zst is 58,4 MiB (+3.6%%)
|
2021-05-04 15:17:47 +03:00
|
|
|
# /lib/modules/5.10.34-generic-1rosa2019.1-x86_64 (*.ko.xz) is 78,1 MiB
|
2022-03-09 19:02:02 +01:00
|
|
|
# /lib/modules/5.10.34-generic-2rosa2019.1-x86_64 (*.ko.zst) is 83,9 MiB (+7%%)
|
2021-05-04 15:17:47 +03:00
|
|
|
# When zstd is compressing cpio (initrd image) with zstd-compressed kernel modules inside it, does it recompress data?
|
|
|
|
# It is not easy to make a choice between zstd and xz for kernel modules... Disk space (and so speed of installing
|
|
|
|
# RPM packages) is not much bigger, we do not try to support super low end devices, operation speed is a bit better.
|
|
|
|
# I have not seen measurable difference in startup time according to systemd-analyze.
|
|
|
|
# Note that decompression after zstd --ultra -22 will consume more memory than after zstd -6, see commit message in
|
|
|
|
# https://github.com/torvalds/linux/commit/73f3d1b48f5069d46b. I did not benchmark -6 vs -22 in runtime.
|
|
|
|
# Let's use zstd for now.
|
|
|
|
# zstd may also be used to compress linux-firmware to save a lot of space on disk,
|
|
|
|
# but upstream kernels still cannot decompress it.
|
2022-03-15 17:03:05 +03:00
|
|
|
#{zstd_cmd} -T0 --train $(find . -type f -name '*.ko')
|
2021-05-04 15:17:47 +03:00
|
|
|
#[ -f dictionary ]
|
2021-05-03 18:21:14 +03:00
|
|
|
# -T1 (one thread) because we run multiple zstd processes by xargs
|
2022-03-15 17:03:05 +03:00
|
|
|
%if %{with modxz}
|
2022-03-09 19:02:02 +01:00
|
|
|
find %{target_modules} -name "*.ko" | %kxargs xz -6e
|
2022-03-15 17:03:05 +03:00
|
|
|
%else
|
|
|
|
find %{target_modules} -name "*.ko" | %kxargs %{zstd_cmd} --rm -T1 #-D dictionary
|
|
|
|
rm -f dictionary
|
|
|
|
%endif
|
|
|
|
%endif
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2022-09-26 15:32:27 +03:00
|
|
|
%if %{with binary_extra_modules}
|
|
|
|
# Move nvidia modules to manage them via alternatives(8), leave *.debug
|
|
|
|
# TODO: better handle debug here and in the package in general
|
|
|
|
find %{target_modules}/%{kver_full}/kernel/drivers/video -name 'nvidia???.*' -type d -maxdepth 1 |
|
|
|
|
while read -r line
|
|
|
|
do
|
|
|
|
nv="$(basename "$line")"
|
|
|
|
mkdir -p %{buildroot}%{kroko_kmods_dir}/"$nv"-%{kver_full}
|
|
|
|
mv -v "$line"/*.ko%{kmod_suffix} %{buildroot}%{kroko_kmods_dir}/"$nv"-%{kver_full}
|
|
|
|
done
|
|
|
|
%endif #/with binary_extra_modules
|
|
|
|
|
2021-05-23 14:11:15 +03:00
|
|
|
find %{buildroot}%{_modulesdir}/%{kver_full} -type f -name '*.ko%{kmod_suffix}' | sed -e 's,^%{buildroot},,' | sort -u >> %{kernel_files}
|
|
|
|
find %{buildroot}%{_modulesdir}/%{kver_full} -type d | sed -e 's,^%{buildroot},%dir ,' | sort -u >> %{kernel_files}
|
2021-05-03 15:56:13 +03:00
|
|
|
|
Delete old initrds by RPM
After moving to dnf (installonlypkg(kernel)) schema of packaging the kernel,
the %%postun scriptlet stopped working properly because $1 is the number
of packages left after the transaction, and there are multiple
kernels - packages with the same name but of different version/release - left.
Let's just make initrd be %%ghost as Fedora (but increase its size from Fedora's 20 MiB to 65 MiB),
and drop deleting empty directories etc. Recent commit fixed ownership of directories,
now /lib/modules/kernel_version is owned by RPM (it was not), dkms will remove modules
that it built, and, if anything else was left, then let's just not touch it, why must we delete
what we know nothing about?
Also delete scriptlet in the devel subpackage, that scriptlet would probably cause problems
with reinstalling the devel package.
2021-05-24 21:10:00 +03:00
|
|
|
# We estimate the size of the initramfs because rpm needs to take this size
|
|
|
|
# into consideration when performing disk space calculations (See rhbz#530778)
|
|
|
|
# 65 MiB is a bit more than needed, but let's be more sure that there is enought space.
|
|
|
|
# On my PC, zstd-compressed initrds take 58,5 MiB.
|
|
|
|
# Real size of the RPM package should not increase because RPM compresses the payload.
|
|
|
|
# This file is %%ghost, so the real initrd will be deleted when uninstalling this package.
|
|
|
|
dd if=/dev/zero of=%{buildroot}%{initrd_path} bs=1M count=65
|
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
%if %{build_debug}
|
2021-05-03 15:56:13 +03:00
|
|
|
install -m 644 vmlinux %{buildroot}%{_bootdir}/vmlinux-%{kver_full}
|
|
|
|
find %{buildroot}%{_modulesdir} -type f -name '*.debug' | sed -e 's,^%{buildroot},,' | sort -u >> %{debuginfo_files}
|
2022-03-09 19:02:02 +01:00
|
|
|
%endif
|
|
|
|
# End of build_debug
|
2021-05-03 15:56:13 +03:00
|
|
|
|
2015-04-21 19:03:58 +03:00
|
|
|
pushd %{target_modules}
|
|
|
|
for i in *; do
|
|
|
|
rm -f $i/build $i/source
|
|
|
|
ln -sf /usr/src/linux-$i $i/build
|
|
|
|
ln -sf /usr/src/linux-$i $i/source
|
|
|
|
done
|
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Sniff, if we compressed all the modules, we change the stamp :(
|
2013-11-16 00:27:01 +04:00
|
|
|
# we really need the depmod -ae here
|
|
|
|
for i in *; do
|
|
|
|
/sbin/depmod -ae -b %{buildroot} -F %{target_boot}/System.map-$i $i
|
|
|
|
echo $?
|
|
|
|
done
|
|
|
|
|
2019-07-16 18:30:53 +03:00
|
|
|
# We used to create modules.description files which contained the
|
|
|
|
# description strings for the modules as shown by modinfo. These files
|
|
|
|
# are unlikely to be used right now, so create them (in case some old tool
|
|
|
|
# checks for their existence) but keep them empty.
|
2013-11-16 00:27:01 +04:00
|
|
|
for i in *; do
|
2019-07-16 18:30:53 +03:00
|
|
|
touch $i/modules.description
|
2013-11-16 00:27:01 +04:00
|
|
|
done
|
|
|
|
popd
|
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Need to set extraversion to match srpm again to avoid rebuild
|
2019-07-16 18:30:53 +03:00
|
|
|
LC_ALL=C sed -ri "s/^EXTRAVERSION.*/EXTRAVERSION = -%{fullrpmrel}/" Makefile
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
%if %{build_perf}
|
|
|
|
# Perf tool binary and supporting scripts/binaries
|
2020-12-11 19:39:08 +00:00
|
|
|
make -C tools/perf -s V=1 DESTDIR=%{buildroot} WERROR=0 HAVE_CPLUS_DEMANGLE=1 prefix=%{_prefix} lib=%{_lib} install
|
2013-11-16 00:27:01 +04:00
|
|
|
|
2020-05-11 09:33:18 +03:00
|
|
|
# Versionize shebang (#!/usr/bin/env python -> #!/usr/bin/python3)
|
2022-03-17 10:23:10 +03:00
|
|
|
sed -i '1 s,^#!/usr/bin/env python$,#!%{__python3},' \
|
|
|
|
%{buildroot}%{_prefix}/libexec/perf-core/scripts/python/exported-sql-viewer.py \
|
|
|
|
%{buildroot}%{_prefix}/libexec/perf-core/scripts/python/libxed.py
|
2020-05-11 09:33:18 +03:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Perf man pages (note: implicit rpm magic compresses them later)
|
2022-03-15 17:03:05 +03:00
|
|
|
make -C tools/perf -s V=1 DESTDIR=%{buildroot} WERROR=0 HAVE_CPLUS_DEMANGLE=1 prefix=%{_prefix} install-man
|
2013-11-16 00:27:01 +04:00
|
|
|
%endif
|
|
|
|
|
|
|
|
%if %{build_cpupower}
|
2014-01-23 11:57:37 +04:00
|
|
|
make -C tools/power/cpupower DESTDIR=%{buildroot} libdir=%{_libdir} mandir=%{_mandir} CPUFREQ_BENCH=false install
|
2013-11-16 00:27:01 +04:00
|
|
|
rm -f %{buildroot}%{_libdir}/*.{a,la}
|
2022-03-09 19:02:02 +01:00
|
|
|
|
2013-11-16 00:27:01 +04:00
|
|
|
%find_lang cpupower
|
2022-03-09 19:02:02 +01:00
|
|
|
|
2013-11-16 00:27:01 +04:00
|
|
|
mv cpupower.lang ../
|
|
|
|
chmod 0755 %{buildroot}%{_libdir}/libcpupower.so*
|
|
|
|
mkdir -p %{buildroot}%{_unitdir} %{buildroot}%{_sysconfdir}/sysconfig
|
|
|
|
install -m644 %{SOURCE50} %{buildroot}%{_unitdir}/cpupower.service
|
2015-03-17 20:53:12 +03:00
|
|
|
install -m644 %{SOURCE53} %{buildroot}%{_unitdir}/cpupower.path
|
2013-11-16 00:27:01 +04:00
|
|
|
install -m644 %{SOURCE51} %{buildroot}%{_sysconfdir}/sysconfig/cpupower
|
2015-03-13 17:29:40 +03:00
|
|
|
install -m755 %{SOURCE52} %{buildroot}%{_bindir}/cpupower-start.sh
|
2013-11-16 00:27:01 +04:00
|
|
|
%endif
|
2020-07-29 10:59:41 +03:00
|
|
|
|
2022-03-09 19:02:02 +01:00
|
|
|
# Delete junk
|
2020-08-06 17:26:48 +03:00
|
|
|
rm -fr %{buildroot}%{_usr}/src/*/kernel-source-*
|
2020-08-19 20:02:58 +03:00
|
|
|
|
|
|
|
%if %{with flow_abi}
|
|
|
|
# Prefix with "zzz" to put this directory into the end of search list
|
|
|
|
# and avoid tricks with depmod configs
|
|
|
|
mkdir -p %{buildroot}/lib/modules/%{kernelversion}.%{patchlevel}-rosa-flow-abi
|
|
|
|
ln -s /lib/modules/%{kernelversion}.%{patchlevel}-rosa-flow-abi %{buildroot}%{_modulesdir}/%{kver_full}/kernel/zzz-%{kernelversion}.%{patchlevel}-rosa-flow-abi
|
|
|
|
%endif
|
2022-03-09 19:02:02 +01:00
|
|
|
|
|
|
|
# Drop hidden files
|
|
|
|
rm -f %{buildroot}%{_docdir}/kernel-5.10-generic-doc/devicetree/bindings/.yamllint
|
|
|
|
|
|
|
|
# Fix perms
|
|
|
|
chmod -x %{buildroot}%{_sysconfdir}/bash_completion.d/perf
|
|
|
|
chmod -x %{buildroot}%{_prefix}/lib/perf/examples/bpf/*.c
|
|
|
|
chmod -x %{buildroot}%{_prefix}/lib/perf/include/bpf/*.h
|
|
|
|
chmod -x %{buildroot}%{_prefix}/lib/perf/include/bpf/linux/*.h
|
|
|
|
chmod -x %{buildroot}%{_datadir}/doc/perf-tip/*.txt
|