#!/bin/sh # # Copyright 2003 Wichert Akkerman # # Simple script to generate a debian/ directory for a Linux kernel. set -eu is_enabled() { grep -q "^$1=y" include/config/auto.conf } if_enabled_echo() { if is_enabled "$1"; then echo -n "$2" elif [ $# -ge 3 ]; then echo -n "$3" fi } set_debarch() { if [ "${KBUILD_DEBARCH:+set}" ]; then debarch="$KBUILD_DEBARCH" return fi # Attempt to find the correct Debian architecture case "$UTS_MACHINE" in i386|alpha|m68k|riscv*) debarch="$UTS_MACHINE" ;; x86_64) debarch=amd64 ;; sparc*) debarch=sparc$(if_enabled_echo CONFIG_64BIT 64) ;; s390*) debarch=s390x ;; ppc*) if is_enabled CONFIG_64BIT; then debarch=ppc64$(if_enabled_echo CONFIG_CPU_LITTLE_ENDIAN el) else debarch=powerpc$(if_enabled_echo CONFIG_SPE spe) fi ;; parisc*) debarch=hppa ;; mips*) if is_enabled CONFIG_CPU_LITTLE_ENDIAN; then debarch=mips$(if_enabled_echo CONFIG_64BIT 64)$(if_enabled_echo CONFIG_CPU_MIPSR6 r6)el elif is_enabled CONFIG_CPU_MIPSR6; then debarch=mips$(if_enabled_echo CONFIG_64BIT 64)r6 else debarch=mips fi ;; aarch64|arm64) debarch=arm64 ;; arm*) if is_enabled CONFIG_AEABI; then debarch=arm$(if_enabled_echo CONFIG_VFP hf el) else debarch=arm fi ;; openrisc) debarch=or1k ;; sh) if is_enabled CONFIG_CPU_SH3; then debarch=sh3$(if_enabled_echo CONFIG_CPU_BIG_ENDIAN eb) elif is_enabled CONFIG_CPU_SH4; then debarch=sh4$(if_enabled_echo CONFIG_CPU_BIG_ENDIAN eb) fi ;; um) if is_enabled CONFIG_64BIT; then debarch=amd64 else debarch=i386 fi ;; loongarch64) debarch=loong64 ;; esac if [ -z "$debarch" ]; then debarch=$(dpkg-architecture -qDEB_HOST_ARCH) echo "" >&2 echo "** ** ** WARNING ** ** **" >&2 echo "" >&2 echo "Your architecture doesn't have its equivalent" >&2 echo "Debian userspace architecture defined!" >&2 echo "Falling back to the current host architecture ($debarch)." >&2 echo "Please add support for $UTS_MACHINE to ${0} ..." >&2 echo "" >&2 fi } # Create debian/source/ if it is a source package build gen_source () { mkdir -p debian/source echo "3.0 (quilt)" > debian/source/format { echo "diff-ignore" echo "extend-diff-ignore = .*" } > debian/source/local-options # Add .config as a patch mkdir -p debian/patches { echo "Subject: Add .config" echo "Author: ${maintainer}" echo echo "--- /dev/null" echo "+++ linux/.config" diff -u /dev/null "${KCONFIG_CONFIG}" | tail -n +3 } > debian/patches/config.patch echo config.patch > debian/patches/series "${srctree}/scripts/package/gen-diff-patch" debian/patches/diff.patch if [ -s debian/patches/diff.patch ]; then sed -i " 1iSubject: Add local diff 1iAuthor: ${maintainer} 1i " debian/patches/diff.patch echo diff.patch >> debian/patches/series else rm -f debian/patches/diff.patch fi } rm -rf debian mkdir debian user=${KBUILD_BUILD_USER:-$(id -nu)} name=${DEBFULLNAME:-${user}} if [ "${DEBEMAIL:+set}" ]; then email=${DEBEMAIL} else buildhost=${KBUILD_BUILD_HOST:-$(hostname -f 2>/dev/null || hostname)} email="${user}@${buildhost}" fi maintainer="${name} <${email}>" while [ $# -gt 0 ]; do case "$1" in --need-source) gen_source shift ;; *) break ;; esac done # Some variables and settings used throughout the script if [ "${KDEB_PKGVERSION:+set}" ]; then packageversion=$KDEB_PKGVERSION else upstream_version=$("${srctree}/scripts/setlocalversion" --no-local "${srctree}" | sed 's/-\(rc[1-9]\)/~\1/') debian_revision=$("${srctree}/scripts/build-version") packageversion=${upstream_version}-${debian_revision} fi sourcename=${KDEB_SOURCENAME:-linux-upstream} if [ "$ARCH" = "um" ] ; then packagename=user-mode-linux else packagename=linux-image fi debarch= set_debarch # Try to determine distribution if [ "${KDEB_CHANGELOG_DIST:+set}" ]; then distribution=$KDEB_CHANGELOG_DIST # In some cases lsb_release returns the codename as n/a, which breaks dpkg-parsechangelog elif distribution=$(lsb_release -cs 2>/dev/null) && [ -n "$distribution" ] && [ "$distribution" != "n/a" ]; then : # nothing to do in this case else distribution="unstable" echo >&2 "Using default distribution of 'unstable' in the changelog" echo >&2 "Install lsb-release or set \$KDEB_CHANGELOG_DIST explicitly" fi echo $debarch > debian/arch host_gnu=$(dpkg-architecture -a "${debarch}" -q DEB_HOST_GNU_TYPE | sed 's/_/-/g') # Generate a simple changelog template cat < debian/changelog $sourcename ($packageversion) $distribution; urgency=low * Custom built Linux kernel. -- $maintainer $(date -R) EOF # Generate a control file cat < debian/control Source: $sourcename Section: kernel Priority: optional Maintainer: $maintainer Rules-Requires-Root: no Build-Depends: debhelper-compat (= 12) Build-Depends-Arch: bc, bison, flex, gcc-${host_gnu} , kmod, libdw-dev:native, libelf-dev:native, libssl-dev:native, libssl-dev , python3:native, rsync Homepage: https://www.kernel.org/ Package: $packagename-${KERNELRELEASE} Architecture: $debarch Description: Linux kernel, version ${KERNELRELEASE} This package contains the Linux kernel, modules and corresponding other files, version: ${KERNELRELEASE}. EOF if [ "${SRCARCH}" != um ]; then cat <> debian/control Package: linux-libc-dev Section: devel Provides: linux-kernel-headers Architecture: $debarch Description: Linux support headers for userspace development This package provides userspaces headers from the Linux kernel. These headers are used by the installed headers for GNU glibc and other system libraries. Multi-Arch: same EOF if is_enabled CONFIG_MODULES; then cat <> debian/control Package: linux-headers-${KERNELRELEASE} Architecture: $debarch Build-Profiles: Description: Linux kernel headers for ${KERNELRELEASE} on $debarch This package provides kernel header files for ${KERNELRELEASE} on $debarch . This is useful for people who need to build external modules EOF fi fi if is_enabled CONFIG_DEBUG_INFO; then cat <> debian/control Package: linux-image-${KERNELRELEASE}-dbg Section: debug Architecture: $debarch Build-Profiles: Description: Linux kernel debugging symbols for ${KERNELRELEASE} This package will come in handy if you need to debug the kernel. It provides all the necessary debug symbols for the kernel and its modules. EOF fi cat < debian/rules.vars ARCH := ${ARCH} KERNELRELEASE := ${KERNELRELEASE} EOF cp "${srctree}/scripts/package/debian/copyright" debian/ cp "${srctree}/scripts/package/debian/rules" debian/ exit 0 tion> Hosts the 0x221E linux distro kernel.Ubuntu
summaryrefslogtreecommitdiff
AgeCommit message (Expand)Author
2013-01-13staging: zram: fix invalid memory references during disk writeNitin Gupta
2012-10-31staging: zram: handle mem suffixes in disk size zram_sysfs parameterSergey Senozhatsky
2012-10-31staging: zram: factor-out zram_decompress_page() functionSergey Senozhatsky
2012-10-29Merge 3.7-rc3 into staging-nextGreg Kroah-Hartman
2012-10-22staging: zram: Fix handling of incompressible pagesNitin Gupta
2012-10-22staging: zram: correct obsolete comment on max_zpage_sizeMinchan Kim
2012-07-09staging: zsmalloc: add mapping modesSeth Jennings
2012-06-25staging: zram/zcache: swtich Kconfig dependency from X86 to ZSMALLOCSeth Jennings
2012-06-11staging: zram: conventions, __aligned() attributeSam Hansen
2012-06-11staging: zram: conventions pr_warning -> pr_warn()Sam Hansen
2012-06-11staging: zram: remove special handle of uncompressed pageMinchan Kim
2012-06-11staging: zram: fix random data readMinchan Kim
2012-06-11staging: zsmalloc: zsmalloc: use unsigned long instead of void *Minchan Kim
2012-03-21Merge branch 'kmap_atomic' of git://github.com/congwang/linuxLinus Torvalds
2012-03-20zram: remove the second argument of k[un]map_atomic()Cong Wang
2012-02-13staging: zram: Rename module parameterNitin Gupta
2012-02-13staging: fix powerpc linux-next break on zsmallocSeth Jennings
2012-02-08staging: zram: remove xvmallocNitin Gupta
2012-02-08staging: zram: replace xvmalloc with zsmallocNitin Gupta
2011-12-08Staging: zram: Add a missing GFP_KERNEL specifier in zram_init_device()Jerome Marchand
2011-12-08Staging: zram/zram_sysfs.c: Fixed call of obsolete function strict_strtoXSergey Datsevich
2011-11-04Merge branch 'for-3.2/core' of git://git.kernel.dk/linux-blockLinus Torvalds