[PATCH] build binary rpm from pre-built tree

From: Greg Edwards
Date: Thu Jul 15 2004 - 18:15:43 EST


Many times it would be nice to quickly package up a kernel tree you're
working on, without having to rebuild the whole thing again from a clean
source tree (like the current rpm-pkg target does). The patch below
adds an "rpmbin-pkg" target which uses your existing (already built)
tree.

Signed-off-by: Greg Edwards <edwardsg@xxxxxxx>

Greg


===== scripts/package/Makefile 1.1 vs edited =====
--- 1.1/scripts/package/Makefile 2004-06-20 22:46:25 -05:00
+++ edited/scripts/package/Makefile 2004-07-15 17:55:24 -05:00
@@ -31,7 +31,7 @@
MKSPEC := $(srctree)/scripts/package/mkspec
PREV := set -e; cd ..;

-.PHONY: rpm-pkg rpm
+.PHONY: rpm-pkg rpm rpmbin-pkg

$(objtree)/kernel.spec: $(MKSPEC)
$(CONFIG_SHELL) $(MKSPEC) > $@
@@ -49,6 +49,16 @@

$(RPM) --target $(UTS_MACHINE) -ta ../$(KERNELPATH).tar.gz
rm ../$(KERNELPATH).tar.gz
+
+rpmbin-pkg: $(MKSPEC)
+ $(CONFIG_SHELL) $(MKSPEC) prebuilt > $(objtree)/kernel.spec
+
+ set -e; \
+ $(CONFIG_SHELL) $(srctree)/scripts/mkversion > $(objtree)/.tmp_version
+ set -e; \
+ mv -f $(objtree)/.tmp_version $(objtree)/.version
+
+ $(RPM) --define "_builddir $(srctree)" --target $(UTS_MACHINE) -bb $(objtree)/kernel.spec

clean-rule += rm -f $(objtree)/kernel.spec

===== scripts/package/mkspec 1.9 vs edited =====
--- 1.9/scripts/package/mkspec 2004-06-20 20:23:45 -05:00
+++ edited/scripts/package/mkspec 2004-07-15 17:55:02 -05:00
@@ -9,6 +9,13 @@
# Patched for non-x86 by Opencon (L) 2002 <opencon@xxxxxxxxxxxxxxx>
#

+# how we were called determines which rpms we build and how we build them
+if [ "$1" = "prebuilt" ]; then
+ PREBUILT=true
+else
+ PREBUILT=false
+fi
+
# starting to output the spec
if [ "`grep CONFIG_DRM=y .config | cut -f2 -d\=`" = "y" ]; then
PROVIDES=kernel-drm
@@ -26,8 +33,12 @@
echo "Group: System Environment/Kernel"
echo "Vendor: The Linux Community"
echo "URL: http://www.kernel.org";
+
+if ! $PREBUILT; then
echo -n "Source: kernel-$VERSION.$PATCHLEVEL.$SUBLEVEL"
echo "$EXTRAVERSION.tar.gz" | sed -e "s/-//g"
+fi
+
echo "BuildRoot: /var/tmp/%{name}-%{PACKAGE_VERSION}-root"
echo "Provides: $PROVIDES"
echo "%define __spec_install_post /usr/lib/rpm/brp-compress || :"
@@ -36,12 +47,20 @@
echo "%description"
echo "The Linux Kernel, the operating system core itself"
echo ""
+
+if ! $PREBUILT; then
echo "%prep"
echo "%setup -q"
echo ""
+fi
+
echo "%build"
+
+if ! $PREBUILT; then
echo "make clean && make"
echo ""
+fi
+
echo "%install"
echo 'mkdir -p $RPM_BUILD_ROOT/boot $RPM_BUILD_ROOT/lib $RPM_BUILD_ROOT/lib/modules'

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/