summaryrefslogtreecommitdiff
path: root/scripts/package
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/package')
-rwxr-xr-xscripts/package/builddeb8
-rwxr-xr-xscripts/package/buildtar52
-rwxr-xr-xscripts/package/deb-build-option16
-rwxr-xr-xscripts/package/mkdebian40
-rwxr-xr-xscripts/package/mkspec12
5 files changed, 53 insertions, 75 deletions
diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index 67cd420dcf89..ff5e7d8e380b 100755
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -42,11 +42,9 @@ create_package() {
else
chown -R root:root "$pdir"
fi
- chmod -R go-w "$pdir"
- # in case we are in a restrictive umask environment like 0077
- chmod -R a+rX "$pdir"
- # in case we build in a setuid/setgid directory
- chmod -R ug-s "$pdir"
+ # a+rX in case we are in a restrictive umask environment like 0077
+ # ug-s in case we build in a setuid/setgid directory
+ chmod -R go-w,a+rX,ug-s "$pdir"
# Create the package
dpkg-gencontrol -p$pname -P"$pdir"
diff --git a/scripts/package/buildtar b/scripts/package/buildtar
index 4d6f0b128efd..65b4ea502962 100755
--- a/scripts/package/buildtar
+++ b/scripts/package/buildtar
@@ -16,39 +16,7 @@ set -e
#
# Some variables and settings used throughout the script
#
-tmpdir="${objtree}/tar-install"
-tarball="${objtree}/linux-${KERNELRELEASE}-${ARCH}.tar"
-
-
-#
-# Figure out how to compress, if requested at all
-#
-case "${1}" in
- dir-pkg|tar-pkg)
- opts=
- ;;
- targz-pkg)
- opts="-I ${KGZIP}"
- tarball=${tarball}.gz
- ;;
- tarbz2-pkg)
- opts="-I ${KBZIP2}"
- tarball=${tarball}.bz2
- ;;
- tarxz-pkg)
- opts="-I ${XZ}"
- tarball=${tarball}.xz
- ;;
- tarzst-pkg)
- opts="-I ${ZSTD}"
- tarball=${tarball}.zst
- ;;
- *)
- echo "Unknown tarball target \"${1}\" requested, please add it to ${0}." >&2
- exit 1
- ;;
-esac
-
+tmpdir=$1
#
# Clean-up and re-create the temporary directory
@@ -148,21 +116,3 @@ case "${ARCH}" in
sleep 5
;;
esac
-
-if [ "${1}" = dir-pkg ]; then
- echo "Kernel tree successfully created in $tmpdir"
- exit 0
-fi
-
-#
-# Create the tarball
-#
-if tar --owner=root --group=root --help >/dev/null 2>&1; then
- opts="$opts --owner=root --group=root"
-fi
-
-tar cf $tarball -C $tmpdir $opts $dirs
-
-echo "Tarball successfully created in $tarball"
-
-exit 0
diff --git a/scripts/package/deb-build-option b/scripts/package/deb-build-option
new file mode 100755
index 000000000000..b079b0d121d4
--- /dev/null
+++ b/scripts/package/deb-build-option
@@ -0,0 +1,16 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0-only
+
+# Set up CROSS_COMPILE if we are cross-compiling, but not called from the
+# kernel toplevel Makefile
+if [ -z "${CROSS_COMPILE}${cross_compiling}" -a "${DEB_HOST_ARCH}" != "${DEB_BUILD_ARCH}" ]; then
+ echo CROSS_COMPILE=${DEB_HOST_GNU_TYPE}-
+fi
+
+version=$(dpkg-parsechangelog -S Version)
+version_upstream="${version%-*}"
+debian_revision="${version#${version_upstream}}"
+debian_revision="${debian_revision#*-}"
+
+echo KERNELRELEASE=${version_upstream}
+echo KBUILD_BUILD_VERSION=${debian_revision}
diff --git a/scripts/package/mkdebian b/scripts/package/mkdebian
index 6cf383225b8b..f74380036bb5 100755
--- a/scripts/package/mkdebian
+++ b/scripts/package/mkdebian
@@ -84,16 +84,16 @@ set_debarch() {
fi
}
+rm -rf debian
+
# Some variables and settings used throughout the script
version=$KERNELRELEASE
if [ -n "$KDEB_PKGVERSION" ]; then
packageversion=$KDEB_PKGVERSION
- revision=${packageversion##*-}
else
- revision=$($srctree/init/build-version)
- packageversion=$version-$revision
+ packageversion=$version-$($srctree/init/build-version)
fi
-sourcename=$KDEB_SOURCENAME
+sourcename=${KDEB_SOURCENAME:-linux-upstream}
if [ "$ARCH" = "um" ] ; then
packagename=user-mode-linux
@@ -133,7 +133,24 @@ else
fi
mkdir -p debian/source/
-echo "1.0" > debian/source/format
+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
+echo config > debian/patches/series
echo $debarch > debian/arch
extra_build_depends=", $(if_enabled_echo CONFIG_UNWINDER_ORC libelf-dev:native)"
@@ -225,19 +242,18 @@ srctree ?= .
build-indep:
build-arch:
- \$(MAKE) KERNELRELEASE=${version} ARCH=${ARCH} \
- KBUILD_BUILD_VERSION=${revision} -f \$(srctree)/Makefile
+ \$(MAKE) -f \$(srctree)/Makefile ARCH=${ARCH} \
+ \$(shell \$(srctree)/scripts/package/deb-build-option) \
+ olddefconfig all
build: build-arch
binary-indep:
binary-arch: build-arch
- \$(MAKE) KERNELRELEASE=${version} ARCH=${ARCH} \
- KBUILD_BUILD_VERSION=${revision} -f \$(srctree)/Makefile intdeb-pkg
-
+ \$(MAKE) -f \$(srctree)/Makefile ARCH=${ARCH} intdeb-pkg
clean:
- rm -rf debian/*tmp debian/files
- \$(MAKE) clean
+ rm -rf debian/files debian/linux-*
+ \$(MAKE) -f \$(srctree)/Makefile ARCH=${ARCH} clean
binary: binary-arch
EOF
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
index 094e52c979a8..3c550960dd39 100755
--- a/scripts/package/mkspec
+++ b/scripts/package/mkspec
@@ -33,8 +33,6 @@ EXCLUDES="$RCS_TAR_IGNORE --exclude=*vmlinux* --exclude=*.mod \
--exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation \
--exclude=.config.old --exclude=.missing-syscalls.d --exclude=*.s"
-test -n "$LOCALVERSION" && MAKE="$MAKE LOCALVERSION=$LOCALVERSION"
-
# We can label the here-doc lines for conditional output to the spec file
#
# Labels:
@@ -49,7 +47,8 @@ sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
Group: System Environment/Kernel
Vendor: The Linux Community
URL: https://www.kernel.org
-$S Source: kernel-$__KERNELRELEASE.tar.gz
+$S Source0: linux.tar.gz
+$S Source1: .config
Provides: $PROVIDES
$S BuildRequires: bc binutils bison dwarves
$S BuildRequires: (elfutils-libelf-devel or libelf-devel) flex
@@ -85,12 +84,11 @@ $S$M This package provides kernel headers and makefiles sufficient to build modu
$S$M against the $__KERNELRELEASE kernel package.
$S$M
$S %prep
-$S %setup -q
-$S rm -f scripts/basic/fixdep scripts/kconfig/conf
-$S rm -f tools/objtool/{fixdep,objtool}
+$S %setup -q -n linux
+$S cp %{SOURCE1} .
$S
$S %build
-$S $MAKE %{?_smp_mflags} KBUILD_BUILD_VERSION=%{release}
+$S $MAKE %{?_smp_mflags} KERNELRELEASE=$KERNELRELEASE KBUILD_BUILD_VERSION=%{release}
$S
%install
mkdir -p %{buildroot}/boot