@@ -30,67 +30,11 @@ create_package() {
3030 chmod -R a+rX " $pdir "
3131
3232 # Create the package
33- dpkg-gencontrol $forcearch -Vkernel:debarch= " ${debarch} " -p$pname -P" $pdir "
33+ dpkg-gencontrol -p$pname -P" $pdir "
3434 dpkg --build " $pdir " ..
3535}
3636
37- set_debarch () {
38- # Attempt to find the correct Debian architecture
39- case " $UTS_MACHINE " in
40- i386|ia64|alpha)
41- debarch=" $UTS_MACHINE " ;;
42- x86_64)
43- debarch=amd64 ;;
44- sparc* )
45- debarch=sparc ;;
46- s390* )
47- debarch=s390$( grep -q CONFIG_64BIT=y $KCONFIG_CONFIG && echo x || true) ;;
48- ppc* )
49- debarch=$( grep -q CPU_LITTLE_ENDIAN=y $KCONFIG_CONFIG && echo ppc64el || echo powerpc) ;;
50- parisc* )
51- debarch=hppa ;;
52- mips* )
53- debarch=mips$( grep -q CPU_LITTLE_ENDIAN=y $KCONFIG_CONFIG && echo el || true) ;;
54- aarch64|arm64)
55- debarch=arm64 ;;
56- arm* )
57- if grep -q CONFIG_AEABI=y $KCONFIG_CONFIG ; then
58- if grep -q CONFIG_VFP=y $KCONFIG_CONFIG ; then
59- debarch=armhf
60- else
61- debarch=armel
62- fi
63- else
64- debarch=arm
65- fi
66- ;;
67- * )
68- debarch=$( dpkg --print-architecture)
69- echo " " >&2
70- echo " ** ** ** WARNING ** ** **" >&2
71- echo " " >&2
72- echo " Your architecture doesn't have its equivalent" >&2
73- echo " Debian userspace architecture defined!" >&2
74- echo " Falling back to using your current userspace instead!" >&2
75- echo " Please add support for $UTS_MACHINE to ${0} ..." >&2
76- echo " " >&2
77- esac
78- if [ -n " $KBUILD_DEBARCH " ] ; then
79- debarch=" $KBUILD_DEBARCH "
80- fi
81- forcearch=" -DArchitecture=$debarch "
82-
83- }
84-
85- # Some variables and settings used throughout the script
8637version=$KERNELRELEASE
87- revision=$( cat .version)
88- if [ -n " $KDEB_PKGVERSION " ]; then
89- packageversion=$KDEB_PKGVERSION
90- else
91- packageversion=$version -$revision
92- fi
93- sourcename=$KDEB_SOURCENAME
9438tmpdir=" $objtree /debian/tmp"
9539kernel_headers_dir=" $objtree /debian/hdrtmp"
9640libc_headers_dir=" $objtree /debian/headertmp"
@@ -99,9 +43,6 @@ packagename=linux-image-$version
9943kernel_headers_packagename=linux-headers-$version
10044libc_headers_packagename=linux-libc-dev
10145dbg_packagename=$packagename -dbg
102- debarch=
103- forcearch=
104- set_debarch
10546
10647if [ " $ARCH " = " um" ] ; then
10748 packagename=user-mode-linux-$version
@@ -212,105 +153,6 @@ EOF
212153 chmod 755 " $tmpdir /DEBIAN/$script "
213154done
214155
215- # Try to determine maintainer and email values
216- if [ -n " $DEBEMAIL " ]; then
217- email=$DEBEMAIL
218- elif [ -n " $EMAIL " ]; then
219- email=$EMAIL
220- else
221- email=$( id -nu) @$( hostname -f 2> /dev/null || hostname)
222- fi
223- if [ -n " $DEBFULLNAME " ]; then
224- name=$DEBFULLNAME
225- elif [ -n " $NAME " ]; then
226- name=$NAME
227- else
228- name=" Anonymous"
229- fi
230- maintainer=" $name <$email >"
231-
232- # Try to determine distribution
233- if [ -n " $KDEB_CHANGELOG_DIST " ]; then
234- distribution=$KDEB_CHANGELOG_DIST
235- # In some cases lsb_release returns the codename as n/a, which breaks dpkg-parsechangelog
236- elif distribution=$( lsb_release -cs 2> /dev/null) && [ -n " $distribution " ] && [ " $distribution " != " n/a" ]; then
237- : # nothing to do in this case
238- else
239- distribution=" unstable"
240- echo >&2 " Using default distribution of 'unstable' in the changelog"
241- echo >&2 " Install lsb-release or set \$ KDEB_CHANGELOG_DIST explicitly"
242- fi
243-
244- # Generate a simple changelog template
245- cat << EOF > debian/changelog
246- $sourcename ($packageversion ) $distribution ; urgency=low
247-
248- * Custom built Linux kernel.
249-
250- -- $maintainer $( date -R)
251- EOF
252-
253- # Generate copyright file
254- cat << EOF > debian/copyright
255- This is a packacked upstream version of the Linux kernel.
256-
257- The sources may be found at most Linux archive sites, including:
258- https://www.kernel.org/pub/linux/kernel
259-
260- Copyright: 1991 - 2017 Linus Torvalds and others.
261-
262- The git repository for mainline kernel development is at:
263- git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
264-
265- This program is free software; you can redistribute it and/or modify
266- it under the terms of the GNU General Public License as published by
267- the Free Software Foundation; version 2 dated June, 1991.
268-
269- On Debian GNU/Linux systems, the complete text of the GNU General Public
270- License version 2 can be found in \` /usr/share/common-licenses/GPL-2'.
271- EOF
272-
273-
274- build_depends=" bc, kmod, cpio "
275-
276- # Generate a control file
277- cat << EOF > debian/control
278- Source: $sourcename
279- Section: kernel
280- Priority: optional
281- Maintainer: $maintainer
282- Build-Depends: $build_depends
283- Homepage: http://www.kernel.org/
284- EOF
285-
286- if [ " $ARCH " = " um" ]; then
287- cat << EOF >> debian/control
288-
289- Package: $packagename
290- Architecture: any
291- Description: User Mode Linux kernel, version $version
292- User-mode Linux is a port of the Linux kernel to its own system call
293- interface. It provides a kind of virtual machine, which runs Linux
294- as a user process under another Linux kernel. This is useful for
295- kernel development, sandboxes, jails, experimentation, and
296- many other things.
297- .
298- This package contains the Linux kernel, modules and corresponding other
299- files, version: $version .
300- EOF
301-
302- else
303- cat << EOF >> debian/control
304-
305- Package: $packagename
306- Architecture: any
307- Description: Linux kernel, version $version
308- This package contains the Linux kernel, modules and corresponding other
309- files, version: $version .
310- EOF
311-
312- fi
313-
314156# Build kernel header package
315157(cd $srctree ; find . -name Makefile\* -o -name Kconfig\* -o -name \* .pl) > " $objtree /debian/hdrsrcfiles"
316158(cd $srctree ; find arch/* /include include scripts -type f -o -type l) >> " $objtree /debian/hdrsrcfiles"
@@ -331,27 +173,6 @@ mkdir -p "$destdir"
331173ln -sf " /usr/src/linux-headers-$version " " $kernel_headers_dir /lib/modules/$version /build"
332174rm -f " $objtree /debian/hdrsrcfiles" " $objtree /debian/hdrobjfiles"
333175
334- cat << EOF >> debian/control
335-
336- Package: $kernel_headers_packagename
337- Architecture: any
338- Description: Linux kernel headers for $KERNELRELEASE on \$ {kernel:debarch}
339- This package provides kernel header files for $KERNELRELEASE on \$ {kernel:debarch}
340- .
341- This is useful for people who need to build external modules
342- EOF
343-
344- cat << EOF >> debian/control
345-
346- Package: $libc_headers_packagename
347- Section: devel
348- Provides: linux-kernel-headers
349- Architecture: any
350- Description: Linux support headers for userspace development
351- This package provides userspaces headers from the Linux kernel. These headers
352- are used by the installed headers for GNU glibc and other system libraries.
353- EOF
354-
355176if [ " $ARCH " != " um" ]; then
356177 create_package " $kernel_headers_packagename " " $kernel_headers_dir "
357178 create_package " $libc_headers_packagename " " $libc_headers_dir "
@@ -370,47 +191,7 @@ if [ -n "$BUILD_DEBUG" ] ; then
370191 ln -s ../lib/modules/$version /vmlinux $dbg_dir /usr/lib/debug/boot/vmlinux-$version
371192 # kdump-tools
372193 ln -s lib/modules/$version /vmlinux $dbg_dir /usr/lib/debug/vmlinux-$version
373-
374- cat << EOF >> debian/control
375-
376- Package: $dbg_packagename
377- Section: debug
378- Architecture: any
379- Description: Linux kernel debugging symbols for $version
380- This package will come in handy if you need to debug the kernel. It provides
381- all the necessary debug symbols for the kernel and its modules.
382- EOF
383-
384194 create_package " $dbg_packagename " " $dbg_dir "
385195fi
386196
387- if [ " x$1 " = " xdeb-pkg" ]
388- then
389- cat << EOF > debian/rules
390- #!/usr/bin/make -f
391-
392- build:
393- \$ (MAKE)
394-
395- binary-arch:
396- \$ (MAKE) KDEB_SOURCENAME=${sourcename} KDEB_PKGVERSION=${packageversion} bindeb-pkg
397-
398- clean:
399- rm -rf debian/*tmp debian/files
400- mv debian/ debian.backup # debian/ might be cleaned away
401- \$ (MAKE) clean
402- mv debian.backup debian
403-
404- binary: binary-arch
405- EOF
406- mv ${sourcename} .tar.gz ../${sourcename} _${version} .orig.tar.gz
407- tar caf ../${sourcename} _${packageversion} .debian.tar.gz debian/{copyright,rules,changelog,control}
408- dpkg-source -cdebian/control -ldebian/changelog --format=" 3.0 (custom)" --target-format=" 3.0 (quilt)" \
409- -b / ../${sourcename} _${version} .orig.tar.gz ../${sourcename} _${packageversion} .debian.tar.gz
410- mv ${sourcename} _${packageversion} * dsc ..
411- dpkg-genchanges -Vkernel:debarch=" ${debarch} " > ../${sourcename} _${packageversion} _${debarch} .changes
412- else
413- dpkg-genchanges -b -Vkernel:debarch=" ${debarch} " > ../${sourcename} _${packageversion} _${debarch} .changes
414- fi
415-
416197exit 0
0 commit comments