File linux-lts66.spec of Package linux-lts66
# Maintainer: Chris Severance aur.severach aATt spamgourmet dott com
# Contributor: Andreas Radke <andyrtr@archlinux.org>
# Converted to .spec format for OBS (Open Build Service)
Name: linux-lts66
Version: 6.6.119
Release: 1%{?dist}
Summary: LTS Linux 6.6 kernel and modules
License: (Apache-2.0 OR MIT) AND (BSD-2-Clause OR GPL-2.0-or-later) AND BSD-3-Clause AND (BSD-3-Clause OR GPL-2.0-only) AND (BSD-3-Clause OR GPL-2.0-or-later) AND BSD-3-Clause-Clear AND GPL-1.0-or-later AND (GPL-1.0-or-later OR BSD-3-Clause) AND GPL-2.0-only AND (GPL-2.0-only OR Apache-2.0) AND (GPL-2.0-only OR BSD-2-Clause) AND (GPL-2.0-only OR BSD-3-Clause) AND (GPL-2.0-only OR CDDL-1.0) AND (GPL-2.0-only OR Linux-OpenIB) AND (GPL-2.0-only OR MIT) AND (GPL-2.0-only OR MPL-1.1) AND (GPL-2.0-only OR X11) AND (GPL-2.0-only WITH Linux-syscall-note) AND GPL-2.0-or-later AND (GPL-2.0-or-later OR BSD-2-Clause) AND (GPL-2.0-or-later OR BSD-3-Clause) AND (GPL-2.0-or-later OR MIT) AND (GPL-2.0-or-later OR X11) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND ISC AND LGPL-2.0-or-later AND LGPL-2.1-only AND (LGPL-2.1-only OR BSD-2-Clause) AND LGPL-2.1-or-later AND MIT AND MPL-1.1 AND X11 AND Zlib
URL: https://www.kernel.org
BuildRoot: %{_tmppath}/%{name}-%{version}-root
# Source files (all must be uploaded to OBS project)
Source0: linux-6.6.tar.xz
Source1: linux-6.6.tar.sign
Source2: patch-6.6.119.xz
Source3: config
# Patches
Patch1: 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
Patch2: 0002-skip-simpledrm-if-nvidia-drm.modeset=1-is.patch
Patch3: 0003-Default-to-maximum-amount-of-ASLR-bits.patch
Patch4: 0004-Sphinx-7.2.2-8.0-PosixPath.patch
Patch5: 0005-Sphinx-docutils-0.22-deprecated-SafeString-ErrorString.patch
Patch6: 0006-perl-5.41-precedence-warning-kernel-doc.patch
# Build requirements
BuildRequires: bc cpio gettext libelf-devel pahole perl python tar xz
BuildRequires: graphviz imagemagick python-sphinx texlive-latex
# Runtime requirements
Requires: coreutils kmod initramfs
Requires: /sbin/depmod
# Architecture
BuildArch: x86_64
%description
LTS Linux 6.6 kernel and modules with arch-specific patches.
This package provides the Linux kernel and associated modules
for x86_64 architecture.
%package headers
Summary: Headers and scripts for building modules for %{name}
Requires: pahole
%description headers
Headers and scripts for building modules for the %{name} kernel.
These files are needed to compile kernel modules against this kernel.
%package docs
Summary: Documentation for %{name}
License: (BSD-3-Clause) AND GFDL-1.1-no-invariants-or-later AND (GPL-2.0-only AND various)
%description docs
Kernel documentation for %{name}.
%prep
%autosetup -n linux-6.6 -p1
echo "Setting version..."
echo "-%{release}" > localversion.10-pkgrel
echo "%{name#linux}" > localversion.20-pkgname
echo "Setting config..."
cp %{SOURCE3} .config
make olddefconfig
diff -u %{SOURCE3} .config || :
make -s kernelrelease > version
echo "Prepared %{name} version $(cat version)"
%build
export KBUILD_BUILD_HOST=archlinux
export KBUILD_BUILD_USER=%{name}
export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
# Build documentation in background
nice -n1 make -j1 htmldocs < /dev/null &
_pid_docs=$!
# Build kernel
nice -n2 make all
# Wait for documentation
wait ${_pid_docs}
%install
rm -rf %{buildroot}
cd linux-6.6
_version=$(cat version)
_modulesdir=%{buildroot}/usr/lib/modules/${_version}
echo "Installing boot image..."
install -Dm644 "$(make -s image_name)" "${_modulesdir}/vmlinuz"
echo "Using %{name} as kernel name..."
echo "%{name}" | install -Dm644 /dev/stdin "${_modulesdir}/pkgbase"
echo "Installing modules..."
ZSTD_CLEVEL=19 make INSTALL_MOD_PATH=%{buildroot}/usr INSTALL_MOD_STRIP=1 \
DEPMOD=/doesnt/exist modules_install
rm "${_modulesdir}/build"
# Install licenses
install -Dm644 LICENSES/deprecated/GPL-1.0 %{buildroot}%{_licensedir}/%{name}/GPL-1.0
install -Dm644 LICENSES/deprecated/ISC %{buildroot}%{_licensedir}/%{name}/ISC
install -Dm644 LICENSES/deprecated/Linux-OpenIB %{buildroot}%{_licensedir}/%{name}/Linux-OpenIB
install -Dm644 LICENSES/deprecated/X11 %{buildroot}%{_licensedir}/%{name}/X11
install -Dm644 LICENSES/deprecated/Zlib %{buildroot}%{_licensedir}/%{name}/Zlib
install -Dm644 LICENSES/preferred/BSD-2-Clause %{buildroot}%{_licensedir}/%{name}/BSD-2-Clause
install -Dm644 LICENSES/preferred/BSD-3-Clause %{buildroot}%{_licensedir}/%{name}/BSD-3-Clause
install -Dm644 LICENSES/preferred/MIT %{buildroot}%{_licensedir}/%{name}/MIT
# Headers installation
_builddir=%{buildroot}/usr/lib/modules/${_version}/build
echo "Installing build files for headers..."
install -Dt "${_builddir}" -m644 .config Makefile Module.symvers System.map \
localversion.* version vmlinux
install -Dt "${_builddir}/kernel" -m644 kernel/Makefile
install -Dt "${_builddir}/arch/x86" -m644 arch/x86/Makefile
cp -t "${_builddir}" -a scripts
install -Dt "${_builddir}/tools/objtool" tools/objtool/objtool
install -Dt "${_builddir}/tools/bpf/resolve_btfids" tools/bpf/resolve_btfids/resolve_btfids
echo "Installing headers..."
cp -t "${_builddir}" -a include
cp -t "${_builddir}/arch/x86" -a arch/x86/include
install -Dt "${_builddir}/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s
install -Dt "${_builddir}/drivers/md" -m644 drivers/md/*.h
install -Dt "${_builddir}/net/mac80211" -m644 net/mac80211/*.h
install -Dt "${_builddir}/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h
install -Dt "${_builddir}/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h
install -Dt "${_builddir}/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h
install -Dt "${_builddir}/drivers/media/tuners" -m644 drivers/media/tuners/*.h
install -Dt "${_builddir}/drivers/iio/common/hid-sensors" -m644 drivers/iio/common/hid-sensors/*.h
echo "Installing KConfig files..."
find . -name 'Kconfig*' -exec install -Dm644 {} "${_builddir}/{}" \;
echo "Removing unneeded architectures..."
for arch in "${_builddir}"/arch/*/; do
[[ $(basename "$arch") = x86 ]] && continue
echo "Removing $(basename "$arch")"
rm -r "$arch"
done
echo "Removing documentation..."
rm -r "${_builddir}/Documentation"
echo "Removing broken symlinks..."
find -L "${_builddir}" -type l -delete
echo "Removing loose objects..."
find "${_builddir}" -type f -name '*.o' -delete
echo "Stripping build tools..."
while read -rd '' file; do
case "$(file -Sib "$file")" in
application/x-sharedlib\;*)
strip -s "$file" ;;
application/x-archive\;*)
strip -S "$file" ;;
application/x-executable\;*)
strip "$file" ;;
application/x-pie-executable\;*)
strip -s "$file" ;;
esac
done < <(find "${_builddir}" -type f -perm -u+x ! -name vmlinux -print0)
echo "Stripping vmlinux..."
strip -S "${_builddir}/vmlinux"
echo "Creating headers symlink..."
mkdir -p %{buildroot}/usr/src
ln -sr "${_builddir}" %{buildroot}/usr/src/%{name}
# Install headers licenses
install -Dm644 LICENSES/deprecated/ISC %{buildroot}%{_licensedir}/%{name}-headers/ISC
install -Dm644 LICENSES/preferred/BSD-2-Clause %{buildroot}%{_licensedir}/%{name}-headers/BSD-2-Clause
install -Dm644 LICENSES/preferred/BSD-3-Clause %{buildroot}%{_licensedir}/%{name}-headers/BSD-3-Clause
install -Dm644 LICENSES/preferred/MIT %{buildroot}%{_licensedir}/%{name}-headers/MIT
# Documentation installation
echo "Installing documentation..."
_docdir=%{buildroot}/usr/lib/modules/${_version}/build/Documentation
while read -rd '' src; do
dst="${src#Documentation/}"
dst="${_docdir}/${dst#output/}"
install -Dm644 "$src" "$dst"
done < <(find Documentation -name '.*' -prune -o ! -type d -print0)
mkdir -p %{buildroot}%{_docdir}/%{name}
ln -sr "${_docdir}" %{buildroot}%{_docdir}/%{name}/kernel-docs
install -Dm644 LICENSES/deprecated/X11 %{buildroot}%{_licensedir}/%{name}-docs/X11
install -Dm644 LICENSES/preferred/BSD-2-Clause %{buildroot}%{_licensedir}/%{name}-docs/BSD-2-Clause
install -Dm644 LICENSES/preferred/MIT %{buildroot}%{_licensedir}/%{name}-docs/MIT
%files
%license LICENSES/
/usr/lib/modules/*/vmlinuz
/usr/lib/modules/*/modules.*
/usr/lib/modules/*/kernel/
/usr/lib/modules/*/pkgbase
%files headers
%license LICENSES/
/usr/lib/modules/*/build
/usr/src/%{name}
%files docs
%license LICENSES/
%doc /usr/lib/modules/*/build/Documentation
%doc /usr/share/doc/%{name}/
%changelog
* Wed Dec 10 2025 Chris Severance <aur@severa.cc> - 6.6.119-1
- Initial OBS release
- Kernel 6.6.119 LTS with arch-specific patches
* Tue Dec 09 2025 Chris Severance <aur@severa.cc> - 6.6.118-1
- Previous AUR release