Re: [PATCH v2 3/3] builddeb: add make fastdeb-pkg target

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jan 23, 2017 at 4:40 AM,  <riku.voipio@xxxxxxxxxx> wrote:
> From: Riku Voipio <riku.voipio@xxxxxxxxxx>
>
> Currently, the deb-pkg and bindeb-pkg targets create multiple packages
> for the kernel binaries, headers, userspace headers and firmware.
>
> For developers who generate Debian packages as part of their development
> workflows, it's often not necessary to generate all these packages.
>
> Introduce new target, fastdeb-pkg, which only generates kernel packages.
> Re-order package build order so that kernel binary package is created
> first and we can exit cleanly unless generating rest packages with the
> old bindeb-pkg and deb-pkg targets.
>
> Cc: Jim Davis <jim.epost@xxxxxxxxx>
> Reviewed-by: Andrew Donnellan <andrew.donnellan@xxxxxxxxxxx>
> Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx>
> ---
> v2: Update comments as suggested by Andrew
> ---
>  scripts/package/Makefile |  7 ++++++-
>  scripts/package/builddeb | 49 +++++++++++++++++++++++++-----------------------
>  2 files changed, 32 insertions(+), 24 deletions(-)
>
> diff --git a/scripts/package/Makefile b/scripts/package/Makefile
> index 71b4a8af9d4d..fc86cc3ae222 100644
> --- a/scripts/package/Makefile
> +++ b/scripts/package/Makefile
> @@ -97,6 +97,10 @@ bindeb-pkg: FORCE
>         $(MAKE) KBUILD_SRC=
>         +$(call cmd,builddeb)
>
> +fastdeb-pkg: FORCE
> +       $(MAKE) KBUILD_SRC=
> +       +$(call cmd,builddeb)
> +
>  clean-dirs += $(objtree)/debian/
>
>
> @@ -142,7 +146,8 @@ help: FORCE
>         @echo '  rpm-pkg             - Build both source and binary RPM kernel packages'
>         @echo '  binrpm-pkg          - Build only the binary kernel RPM package'
>         @echo '  deb-pkg             - Build both source and binary deb kernel packages'
> -       @echo '  bindeb-pkg          - Build only the binary kernel deb package'
> +       @echo '  bindeb-pkg          - Build all binary kernel deb packages'
> +       @echo '  fastdeb-pkg         - Build only the binary kernel image deb package'
>         @echo '  tar-pkg             - Build the kernel as an uncompressed tarball'
>         @echo '  targz-pkg           - Build the kernel as a gzip compressed tarball'
>         @echo '  tarbz2-pkg          - Build the kernel as a bzip2 compressed tarball'
> diff --git a/scripts/package/builddeb b/scripts/package/builddeb
> index 15e69e45cada..c5dc455272ee 100755
> --- a/scripts/package/builddeb
> +++ b/scripts/package/builddeb
> @@ -185,11 +185,6 @@ if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then
>         fi
>  fi
>
> -if [ "$ARCH" != "um" ]; then
> -       $MAKE headers_check KBUILD_SRC=
> -       $MAKE headers_install KBUILD_SRC= INSTALL_HDR_PATH="$libc_headers_dir/usr"
> -fi
> -
>  # Install the maintainer scripts
>  # Note: hook scripts under /etc/kernel are also executed by official Debian
>  # kernel packages, as well as kernel packages built using make-kpkg.
> @@ -321,6 +316,32 @@ EOF
>
>  fi
>
> +# Move firmware out of kernel image package.
> +if [ -e "$tmpdir/lib/firmware" ]; then
> +       mv "$tmpdir/lib/firmware"/* "$fwdir/lib/firmware/$version/"
> +       rmdir "$tmpdir/lib/firmware"
> +fi
> +
> +create_package "$packagename" "$tmpdir"
> +[ "x$1" = "xfastdeb-pkg" ] && exit 0
> +
> +if [ -e "$fwdir/lib/firmware/$version" ]; then
> +       cat <<EOF >> debian/control
> +
> +Package: $fwpackagename
> +Architecture: all
> +Description: Linux kernel firmware, version $version
> + This package contains firmware from the Linux kernel, version $version.
> +EOF
> +
> +       create_package "$fwpackagename" "$fwdir"
> +fi
> +
> +if [ "$ARCH" != "um" ]; then
> +       $MAKE headers_check KBUILD_SRC=
> +       $MAKE headers_install KBUILD_SRC= INSTALL_HDR_PATH="$libc_headers_dir/usr"
> +fi
> +
>  # Build kernel header package
>  (cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl) > "$objtree/debian/hdrsrcfiles"
>  (cd $srctree; find arch/*/include include scripts -type f) >> "$objtree/debian/hdrsrcfiles"
> @@ -351,22 +372,6 @@ Description: Linux kernel headers for $KERNELRELEASE on \${kernel:debarch}
>   This is useful for people who need to build external modules
>  EOF
>
> -# Do we have firmware? Move it out of the way and build it into a package.
> -if [ -e "$tmpdir/lib/firmware" ]; then
> -       mv "$tmpdir/lib/firmware"/* "$fwdir/lib/firmware/$version/"
> -       rmdir "$tmpdir/lib/firmware"
> -
> -       cat <<EOF >> debian/control
> -
> -Package: $fwpackagename
> -Architecture: all
> -Description: Linux kernel firmware, version $version
> - This package contains firmware from the Linux kernel, version $version.
> -EOF
> -
> -       create_package "$fwpackagename" "$fwdir"
> -fi
> -
>  cat <<EOF >> debian/control
>
>  Package: $libc_headers_packagename
> @@ -383,8 +388,6 @@ if [ "$ARCH" != "um" ]; then
>         create_package "$libc_headers_packagename" "$libc_headers_dir"
>  fi
>
> -create_package "$packagename" "$tmpdir"
> -
>  if [ -n "$BUILD_DEBUG" ] ; then
>         # Build debug package
>         # Different tools want the image in different locations
> --
> 2.11.0
>

Tested-by: Jim Davis <jim.epost@xxxxxxxxx>

-- 
Jim
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux