]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
kbuild: rpm-pkg: fix build error when CONFIG_MODULES is disabled
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Sat, 30 Sep 2017 01:10:07 +0000 (10:10 +0900)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Tue, 14 Nov 2017 14:18:53 +0000 (23:18 +0900)
When CONFIG_MODULES is disabled, make rpm-pkg / binrpm-pkg fails
with the following message:

  The present kernel configuration has modules disabled.
  Type 'make config' and enable loadable module support.
  Then build a kernel with module support enabled.

Do not install modules in the case.  Also, omit the devel package.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
scripts/package/mkspec

index b341d5d8e7932c42225181ea4f174f74a0414e96..d352a0188770f7e58d4768b9a8636bf8f3a9c72a 100755 (executable)
@@ -16,6 +16,12 @@ else
        S=
 fi
 
+if grep -q CONFIG_MODULES=y .config; then
+       M=
+else
+       M=DEL
+fi
+
 if grep -q CONFIG_DRM=y .config; then
        PROVIDES=kernel-drm
 fi
@@ -30,6 +36,7 @@ EXCLUDES="$RCS_TAR_IGNORE --exclude=.tmp_versions --exclude=*vmlinux* \
 #
 # Labels:
 #  $S: this line is enabled only when building source package
+#  $M: this line is enabled only when CONFIG_MODULES is enabled
 sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
        Name: kernel
        Summary: The Linux Kernel
@@ -59,14 +66,14 @@ $S  Source: kernel-$__KERNELRELEASE.tar.gz
        building most standard programs and are also needed for rebuilding the
        glibc package.
 
-$S     %package devel
-$S     Summary: Development package for building kernel modules to match the $__KERNELRELEASE kernel
-$S     Group: System Environment/Kernel
-$S     AutoReqProv: no
-$S     %description -n kernel-devel
-$S     This package provides kernel headers and makefiles sufficient to build modules
-$S     against the $__KERNELRELEASE kernel package.
-$S
+$S$M   %package devel
+$S$M   Summary: Development package for building kernel modules to match the $__KERNELRELEASE kernel
+$S$M   Group: System Environment/Kernel
+$S$M   AutoReqProv: no
+$S$M   %description -n kernel-devel
+$S$M   This package provides kernel headers and makefiles sufficient to build modules
+$S$M   against the $__KERNELRELEASE kernel package.
+$S$M
 $S     %prep
 $S     %setup -q
 $S
@@ -82,19 +89,19 @@ $S
        %else
        cp \$(make image_name) \$RPM_BUILD_ROOT/boot/vmlinuz-$KERNELRELEASE
        %endif
-       make %{?_smp_mflags} INSTALL_MOD_PATH=\$RPM_BUILD_ROOT KBUILD_SRC= modules_install
+$M     make %{?_smp_mflags} INSTALL_MOD_PATH=\$RPM_BUILD_ROOT KBUILD_SRC= modules_install
        make %{?_smp_mflags} INSTALL_HDR_PATH=\$RPM_BUILD_ROOT/usr KBUILD_SRC= headers_install
        cp System.map \$RPM_BUILD_ROOT/boot/System.map-$KERNELRELEASE
        cp .config \$RPM_BUILD_ROOT/boot/config-$KERNELRELEASE
        bzip2 -9 --keep vmlinux
        mv vmlinux.bz2 \$RPM_BUILD_ROOT/boot/vmlinux-$KERNELRELEASE.bz2
-$S     rm -f \$RPM_BUILD_ROOT/lib/modules/$KERNELRELEASE/build
-$S     rm -f \$RPM_BUILD_ROOT/lib/modules/$KERNELRELEASE/source
-$S     mkdir -p \$RPM_BUILD_ROOT/usr/src/kernels/$KERNELRELEASE
-$S     tar cf - . $EXCLUDES | tar xf - -C \$RPM_BUILD_ROOT/usr/src/kernels/$KERNELRELEASE
-$S     cd \$RPM_BUILD_ROOT/lib/modules/$KERNELRELEASE
-$S     ln -sf /usr/src/kernels/$KERNELRELEASE build
-$S     ln -sf /usr/src/kernels/$KERNELRELEASE source
+$S$M   rm -f \$RPM_BUILD_ROOT/lib/modules/$KERNELRELEASE/build
+$S$M   rm -f \$RPM_BUILD_ROOT/lib/modules/$KERNELRELEASE/source
+$S$M   mkdir -p \$RPM_BUILD_ROOT/usr/src/kernels/$KERNELRELEASE
+$S$M   tar cf - . $EXCLUDES | tar xf - -C \$RPM_BUILD_ROOT/usr/src/kernels/$KERNELRELEASE
+$S$M   cd \$RPM_BUILD_ROOT/lib/modules/$KERNELRELEASE
+$S$M   ln -sf /usr/src/kernels/$KERNELRELEASE build
+$S$M   ln -sf /usr/src/kernels/$KERNELRELEASE source
 
        %clean
        rm -rf \$RPM_BUILD_ROOT
@@ -120,18 +127,18 @@ $S        ln -sf /usr/src/kernels/$KERNELRELEASE source
 
        %files
        %defattr (-, root, root)
-       /lib/modules/$KERNELRELEASE
-       %exclude /lib/modules/$KERNELRELEASE/build
-       %exclude /lib/modules/$KERNELRELEASE/source
+$M     /lib/modules/$KERNELRELEASE
+$M     %exclude /lib/modules/$KERNELRELEASE/build
+$M     %exclude /lib/modules/$KERNELRELEASE/source
        /boot/*
 
        %files headers
        %defattr (-, root, root)
        /usr/include
-$S
-$S     %files devel
-$S     %defattr (-, root, root)
-$S     /usr/src/kernels/$KERNELRELEASE
-$S     /lib/modules/$KERNELRELEASE/build
-$S     /lib/modules/$KERNELRELEASE/source
+$S$M
+$S$M   %files devel
+$S$M   %defattr (-, root, root)
+$S$M   /usr/src/kernels/$KERNELRELEASE
+$S$M   /lib/modules/$KERNELRELEASE/build
+$S$M   /lib/modules/$KERNELRELEASE/source
 EOF