Skip to content

Commit 3716001

Browse files
Riku VoipioMichal Marek
Riku Voipio
authored and
Michal Marek
committed
deb-pkg: add source package
Make deb-pkg build both source and binary package like make rpm-pkg does. For people who only need binary kernel package, there is now bindeb-pkg target, same target also used to build the .deb files if built from the source package using dpkg-buildpackage. Generated source package will build the same kernel .config than what was available for make deb-pkg. The name of the source package can be set with KDEB_SOURCENAME enviroment variable. The source package is useful for GPL compliance, or for feeding to a automated debian package builder. Cc: Chris J Arges <[email protected]> Reviewed-by: maximilian attems <[email protected]> Reviewed-by: Ben Hutchings <[email protected]> Signed-off-by: Riku Voipio <[email protected]> Signed-off-by: Michal Marek <[email protected]>
1 parent 2680382 commit 3716001

File tree

2 files changed

+49
-6
lines changed

2 files changed

+49
-6
lines changed

scripts/package/Makefile

+13-4
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323

2424
# Remove hyphens since they have special meaning in RPM filenames
2525
KERNELPATH := kernel-$(subst -,_,$(KERNELRELEASE))
26+
KDEB_SOURCENAME ?= linux-$(KERNELRELEASE)
27+
export KDEB_SOURCENAME
2628
# Include only those top-level files that are needed by make, plus the GPL copy
2729
TAR_CONTENT := $(KBUILD_ALLDIRS) .config .scmversion Makefile \
2830
Kbuild Kconfig COPYING $(wildcard localversion*)
@@ -83,11 +85,17 @@ quiet_cmd_builddeb = BUILDDEB
8385
} && \
8486
\
8587
$$KBUILD_PKG_ROOTCMD $(CONFIG_SHELL) \
86-
$(srctree)/scripts/package/builddeb
88+
$(srctree)/scripts/package/builddeb $@
8789

8890
deb-pkg: FORCE
91+
$(MAKE) clean
92+
$(call cmd,src_tar,$(KDEB_SOURCENAME))
93+
$(MAKE) KBUILD_SRC=
94+
+$(call cmd,builddeb)
95+
96+
bindeb-pkg: FORCE
8997
$(MAKE) KBUILD_SRC=
90-
$(call cmd,builddeb)
98+
+$(call cmd,builddeb)
9199

92100
clean-dirs += $(objtree)/debian/
93101

@@ -132,8 +140,9 @@ perf-%pkg: FORCE
132140
# ---------------------------------------------------------------------------
133141
help: FORCE
134142
@echo ' rpm-pkg - Build both source and binary RPM kernel packages'
135-
@echo ' binrpm-pkg - Build only the binary kernel package'
136-
@echo ' deb-pkg - Build the kernel as a deb package'
143+
@echo ' binrpm-pkg - Build only the binary kernel RPM package'
144+
@echo ' deb-pkg - Build both source and binary deb kernel packages'
145+
@echo ' bindeb-pkg - Build only the binary kernel deb package'
137146
@echo ' tar-pkg - Build the kernel as an uncompressed tarball'
138147
@echo ' targz-pkg - Build the kernel as a gzip compressed tarball'
139148
@echo ' tarbz2-pkg - Build the kernel as a bzip2 compressed tarball'

scripts/package/builddeb

+36-2
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ if [ -n "$KDEB_PKGVERSION" ]; then
7979
else
8080
packageversion=$version-$revision
8181
fi
82+
sourcename=$KDEB_SOURCENAME
8283
tmpdir="$objtree/debian/tmp"
8384
fwdir="$objtree/debian/fwtmp"
8485
kernel_headers_dir="$objtree/debian/hdrtmp"
@@ -238,7 +239,7 @@ fi
238239

239240
# Generate a simple changelog template
240241
cat <<EOF > debian/changelog
241-
linux-upstream ($packageversion) $distribution; urgency=low
242+
$sourcename ($packageversion) $distribution; urgency=low
242243
243244
* Custom built Linux kernel.
244245
@@ -265,12 +266,16 @@ On Debian GNU/Linux systems, the complete text of the GNU General Public
265266
License version 2 can be found in \`/usr/share/common-licenses/GPL-2'.
266267
EOF
267268

269+
270+
build_depends="bc, kmod, cpio "
271+
268272
# Generate a control file
269273
cat <<EOF > debian/control
270-
Source: linux-upstream
274+
Source: $sourcename
271275
Section: kernel
272276
Priority: optional
273277
Maintainer: $maintainer
278+
Build-Depends: $build_depends
274279
Standards-Version: 3.8.4
275280
Homepage: http://www.kernel.org/
276281
EOF
@@ -391,4 +396,33 @@ EOF
391396
create_package "$dbg_packagename" "$dbg_dir"
392397
fi
393398

399+
if [ "x$1" = "xdeb-pkg" ]
400+
then
401+
cat <<EOF > debian/rules
402+
#!/usr/bin/make -f
403+
404+
build:
405+
\$(MAKE)
406+
407+
binary-arch:
408+
\$(MAKE) KDEB_SOURCENAME=${sourcename} KDEB_PKGVERSION=${packageversion} bindeb-pkg
409+
410+
clean:
411+
rm -rf debian/*tmp
412+
mv debian/ debian.backup # debian/ might be cleaned away
413+
\$(MAKE) clean
414+
mv debian.backup debian
415+
416+
binary: binary-arch
417+
EOF
418+
mv ${sourcename}.tar.gz ../${sourcename}_${version}.orig.tar.gz
419+
tar caf ../${sourcename}_${packageversion}.debian.tar.gz debian/{copyright,rules,changelog,control}
420+
dpkg-source -cdebian/control -ldebian/changelog --format="3.0 (custom)" --target-format="3.0 (quilt)" \
421+
-b / ../${sourcename}_${version}.orig.tar.gz ../${sourcename}_${packageversion}.debian.tar.gz
422+
mv ${sourcename}_${packageversion}*dsc ..
423+
dpkg-genchanges > ../${sourcename}_${packageversion}_${debarch}.changes
424+
else
425+
dpkg-genchanges -b > ../${sourcename}_${packageversion}_${debarch}.changes
426+
fi
427+
394428
exit 0

0 commit comments

Comments
 (0)