[DRBD-cvs] drbd by phil; * Updates to Build system. * Updates to ...
drbd-user@lists.linbit.com
drbd-user@lists.linbit.com
Fri, 6 Feb 2004 09:50:19 +0100 (CET)
DRBD CVS committal
Author : phil
Module : drbd
Dir : drbd
Modified Files:
INSTALL Makefile drbd.spec.in
Log Message:
* Updates to Build system.
* Updates to INSTALL - readme and SMGL fixes to documentation
by Lars
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/INSTALL,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- INSTALL 6 Jan 2004 10:06:25 -0000 1.4
+++ INSTALL 6 Feb 2004 08:50:14 -0000 1.5
@@ -116,6 +116,11 @@
all# make clean ; make KDIR=/path/to/kernel/source
+ Note that it should build against preconfigured kernel-headers, too,
+ like in "make KDIR=/usr/src/linux-include/athlon". But then you
+ should be very sure that your running kernel matches the
+ configuration of that header tree exactly.
+
== Build DRBD user space tools ==
all# cd /usr/src/drbd-0.6.10/user
@@ -154,11 +159,21 @@
== Building a .rpm of it: ==
+ There are caveats, please have a look at ./README, too,
+ you might want/need to edit the ./drbd.spec file.
+
This should be fairly easy, there is an example spec
- file, and you can even "make rpm" ...
+ file, and you can even "make rpm". If this is a CVS version,
+ you might need to say "make rpm FORCE=1".
- But there are caveats, please have a look at ./README, too,
- you might want/need to edit the ./drbd.spec file.
+ Note that it should build against preconfigured kernel-headers, too,
+ like in "make rpm KDIR=/usr/src/linux-include/athlon",
+ "make rpm KDIR=/usr/src/linux-include/smp", ...
+
+ You then should find packages in dist/{S,}RPMS/*/*.rpm:
+ ./dist/RPMS/i586/drbd-0.6.10+cvs-3.i586.rpm
+ ./dist/RPMS/i586/kernel-module-drbd-0.6.10+cvs-3_2.4.21_166_default.i586.rpm
+ ./dist/RPMS/i586/kernel-smp-module-drbd-0.6.10+cvs-3_2.4.21_166_4G.i586.rpm
== Building a .deb of it: ==
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/Makefile,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -3 -r1.27 -r1.28
--- Makefile 5 Feb 2004 09:10:45 -0000 1.27
+++ Makefile 6 Feb 2004 08:50:14 -0000 1.28
@@ -77,6 +77,12 @@
tgz: check_changelogs_up2date
endif
+KDIR := $(shell echo /lib/modules/`uname -r`/build)
+KVER := $(shell \
+ echo -e "\#include <linux/version.h>\ndrbd_kernel_release UTS_RELEASE" | \
+ gcc -nostdinc -E -P -I$(KDIR)/include - 2>&1 | \
+ sed -ne 's/^drbd_kernel_release "\(.*\)".*/\1/p')
+
# maybe dist/RPMS/$(ARCH) instead of i386 ?
rpm: tgz
mkdir -p dist/BUILD \
@@ -97,6 +103,8 @@
$(RPMBUILD) -ba \
--define "_topdir $(PWD)/dist" \
--define "buildroot $(PWD)/dist/install" \
+ --define "kernelversion $(KVER)" \
+ --define "kdir $(KDIR)" \
$(PWD)/dist/SPECS/drbd.spec
# the INSTALL file is writen in lge-markup, which is basically
@@ -106,7 +114,7 @@
INSTALL.html: INSTALL.pod
-pod2html --title "Howto Build and Install DRBD" \
- < INSTALL.pod > INSTALL.html ; rm pod2htm[di].x~~
+ < INSTALL.pod > INSTALL.html ; rm -f pod2htm[di].x~~
# -w3m -T text/html -dump < INSTALL.html > INSTALL.txt
INSTALL.pod: INSTALL
===================================================================
RCS file: /var/lib/cvs/drbd/drbd/drbd.spec.in,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- drbd.spec.in 5 Feb 2004 09:07:19 -0000 1.1
+++ drbd.spec.in 6 Feb 2004 08:50:14 -0000 1.2
@@ -1,6 +1,8 @@
# "uname -r" output of the kernel to build for, the running one
# if none was specified with "--define 'kernelversion <uname -r>'"
+# PLEASE: provide both (correctly) or none!!
%{!?kernelversion: %{expand: %%define kernelversion %(uname -r)}}
+%{!?kdir: %{expand: %%define kdir /lib/modules/%(uname -r)/build}}
%define kversion %(echo %{kernelversion} | sed -e s/smp// -)
%define krelver %(echo %{kversion} | tr -s '-' '_')
@@ -48,6 +50,10 @@
%prep
%setup
+test -d %{kdir}/.
+test $(echo -e "#include <linux/version.h>\ndrbd_kernel_release UTS_RELEASE" |
+ gcc -nostdinc -E -P -I%{kdir}/include - |
+ sed -ne 's/^drbd_kernel_release "\(.*\)".*/\1/p') = %{kernelversion}
%build
echo kernelversion=%{kernelversion}
@@ -58,7 +64,10 @@
make clean
# note: MANDIR is not used anywhere in the makefiles
# maybe this should be changed
-make PREFIX=%{buildroot}/ MANDIR=%{_mandir} all
+make PREFIX=%{buildroot}/ MANDIR=%{_mandir} KDIR=%{kdir} all
+
+# sanity check
+test %{kernelversion} = $(<drbd/.kernelrelease)
%install
make PREFIX=%{buildroot}/ MANDIR=%{_mandir} install
@@ -66,6 +75,9 @@
mv HOWTO HOWTO.orig
mkdir HOWTO
cp -p HOWTO.orig/*.html HOWTO/
+cd ../drbd
+mv kernel.config.gz k-config-%{kernelversion}.gz
+
FILELIST="%{_builddir}/%{name}-%{version}/file.list"
cd %{buildroot}
#
@@ -127,6 +139,7 @@
%files -n kernel%{?ksmp}-module-drbd
%defattr(-,root,root)
/lib/modules/%{kernelversion}/
+%doc drbd/k-config-%{kernelversion}.gz
%post
uname -r | grep BOOT || /sbin/depmod -a > /dev/null 2>&1 || true
@@ -153,7 +166,7 @@
%changelog
* Wed Feb 4 2004 Lars Ellenberg <Lars.Ellenberg@linbit.com> [0.6.10-3]
-- merged Sean Reifschneiders changes with my own cahnges which already
+- merged Sean Reifschneiders changes with my own changes which already
where in cvs
* Tue Feb 3 2004 Sean Reifschneider <jafo-rpms@tummy.com> [0.6.10-2]