Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
/ 2004-01-22 11:20:16 +0000
\ Nuno Miguel Pais Fernandes:
> On Wed, 2004-01-21 at 21:13, Garth Lezma wrote:
> > Hi folks,
> >
> > I'm trying to build an rpm from the 0.6.10 tarball for rh
> > 9. I made two changes.
> >
> > 1. I modified the drbd_config add the rh specific line #define
> > SIGHAND_HACK
> > 2. I modified the kernel make file to take custom from the
> > EXTRAVERSION line.
> >
> >
> >
> > I get the following error. I need to get a ha server up by the end of
> > the week so any help would be appreciated. Thanks.
> >
> >
> >
> > RPM build errors:
> >
> > Installed (but unpackaged) file(s) found:
> > /etc/drbd.conf
> > /usr/share/man/ja/man5/drbd.conf.5.gz
> > /usr/share/man/ja/man8/datadisk.8.gz
> > /usr/share/man/ja/man8/drbd.8.gz
> > /usr/share/man/ja/man8/drbdsetup.8.gz
> > /usr/share/man/pt_BR/man5/drbd.conf.5.gz
> > /usr/share/man/pt_BR/man8/datadisk.8.gz
> > /usr/share/man/pt_BR/man8/drbd.8.gz
> > /usr/share/man/pt_BR/man8/drbdsetup.8.gz
> Hum..
>
> It seems a problem in spec file.
> Try adding to %files zone the specified files...
exactly.
though, my version of rpm does not choke on this.
please try the attached patch against 0.6.10.
Lars Ellenberg
-------------- next part --------------
Index: Makefile
===================================================================
RCS file: /home/lars/DRBD/CVSHOME/drbd/drbd/Makefile,v
retrieving revision 1.20
diff -u -p -r1.20 Makefile
--- Makefile 7 Dec 2003 09:19:32 -0000 1.20
+++ Makefile 22 Jan 2004 12:01:40 -0000
@@ -20,7 +20,7 @@
include Makefile.vars
REL_VERSION = $(word 3, $(shell grep REL_VERSION drbd_config.h))
-all:
+all: INSTALL.html
@ for i in $(SUBDIRS); do $(MAKE) -C $$i all || test $$i = documentation || exit 1 ; done
@ echo -e "\n\tBuild successful."
@@ -29,7 +29,7 @@ install:
clean:
@ set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i clean; done
- rm -f *~ .filelist
+ rm -f *~ .filelist INSTALL.html INSTALL.pod
rm -rf dist
uninstall:
@@ -37,10 +37,6 @@ uninstall:
check_changelogs_up2date:
@ up2date=true; \
- if ! grep "^Version: $(REL_VERSION)" >/dev/null 2>&1 drbd.spec; \
- then \
- echo "You need to update the Version: tag in drbd.spec"; \
- up2date=false; fi; \
if ! sed -e '0,/^%changelog/d' drbd.spec \
| grep "^- drbd ($(REL_VERSION)-" >/dev/null 2>&1 ; \
then \
@@ -57,8 +53,10 @@ check_changelogs_up2date:
$$up2date
update.filelist:
- cvs status | grep -o "/drbd/drbd/[^,]*" | sed "/documentation/d;s/\/drbd\/drbd/drbd-$(REL_VERSION)/" > .filelist
- echo drbd-$(REL_VERSION)/documentation >> .filelist
+ cvs status | grep -o "/drbd/drbd/[^,]*" | \
+ sed "s/\/drbd\/drbd/drbd-$(REL_VERSION)/" > .filelist
+ find documentation -name "*.[58]" -o -name "*.html" | \
+ sed "s/^/drbd-$(REL_VERSION)\//" >> .filelist
echo drbd-$(REL_VERSION)/.filelist >> .filelist
.filelist:
@@ -66,11 +64,13 @@ update.filelist:
@ false
tgz: .filelist
+ifeq ($(FORCE),)
$(MAKE) -C documentation
+endif
cd scripts; ln -sf drbd datadisk
rm -f drbd-$(REL_VERSION)
ln -s . drbd-$(REL_VERSION)
- tar -czvf drbd-$(REL_VERSION).tar.gz -T .filelist
+ tar --owner=0 --group=0 -czvf drbd-$(REL_VERSION).tar.gz --exclude CVS -T .filelist
rm drbd-$(REL_VERSION)
ifeq ($(FORCE),)
@@ -83,15 +83,39 @@ rpm: tgz
dist/RPMS/i386 \
dist/SPECS \
dist/SOURCES \
+ dist/TMP \
dist/install \
dist/SRPMS
[ -h dist/SOURCES/drbd-$(REL_VERSION).tar.gz ] || \
$(LN_S) $(PWD)/drbd-$(REL_VERSION).tar.gz \
$(PWD)/dist/SOURCES/drbd-$(REL_VERSION).tar.gz
- [ -f dist/SPECS/drbd.spec ] || \
- sed -e 's/^\(Packager:\).*/\1 ${USER}@${HOSTNAME}/;' drbd.spec \
- > dist/SPECS/drbd.spec
+ if test drbd.spec -nt dist/SPECS/drbd.spec ; then \
+ sed -e 's/^\(Version:\).*/\1 '$(REL_VERSION)'/;' \
+ -e 's/^\(Packager:\).*/\1 ${USER}@${HOSTNAME}/;' drbd.spec \
+ > dist/SPECS/drbd.spec ; \
+ fi
$(RPMBUILD) -ba \
- --define "buildroot $(PWD)/dist/install" \
--define "_topdir $(PWD)/dist" \
+ --define "buildroot $(PWD)/dist/install" \
$(PWD)/dist/SPECS/drbd.spec
+
+# the INSTALL file is writen in lge-markup, which is basically
+# wiki style plus some "conventions" :)
+# why don't I write in or convert to HTML directly?
+# editing INSTALL feels more natural this way ...
+
+INSTALL.html: INSTALL.pod
+ -pod2html --title "Howto Build and Install DRBD" \
+ < INSTALL.pod > INSTALL.html ; rm pod2htm[di].x~~
+# -w3m -T text/html -dump < INSTALL.html > INSTALL.txt
+
+INSTALL.pod: INSTALL
+ -perl -pe 'BEGIN { print "=pod\n\n"; }; \
+ s/^= +(.*?) +=$$/=head1 $$1/; \
+ s/^== +(.*?) +==$$/=head2 $$1/; \
+ if(s/^ +([^#]*)$$/$$1/ or /^\S/) { \
+ s/(Note:)/B<$$1>/g; \
+ s/"([^"]+)"/C<$$1>/g; \
+ s,((^|[. ])/(\S|`[^`]*`)+),C<$$1>,g;\
+ }' \
+ < INSTALL > INSTALL.pod
Index: drbd.spec
===================================================================
RCS file: /home/lars/DRBD/CVSHOME/drbd/drbd/drbd.spec,v
retrieving revision 1.15
diff -u -p -r1.15 drbd.spec
--- drbd.spec 12 Dec 2003 14:39:48 -0000 1.15
+++ drbd.spec 22 Jan 2004 12:30:10 -0000
@@ -1,6 +1,6 @@
Name: drbd
Summary: Distributed Redundant Block Device driver for Linux
-Version: 0.6.10
+Version:
Release: 1
Source: %{name}-%{version}.tar.gz
Vendor: DRBD
@@ -31,25 +31,58 @@ Authors:
mkdir -p %{buildroot}
make clean
+# note: MANDIR is not used anywhere in the makefiles
+# maybe this should be changed
make PREFIX=%{buildroot}/ MANDIR=%{_mandir} all install
%install
+make PREFIX=%{buildroot}/ install
+FILELIST="%{_builddir}/%{name}-%{version}/file.list"
cd %{buildroot}
find lib/modules -name drbd.o -exec mv {} {}.new \; \
- -fprintf %{_builddir}/%{name}-%{version}/file.list "/%p.new\n"
+ -fprintf "$FILELIST" "/%p.new\n"
+#
+# this is because /etc/init.d != /etc/rc.d != /etc/rc.d/init.d ...
+# you may want to edit this, or the file list below ;)
+#
+find etc/ -name drbd -printf "/%p\n" >> "$FILELIST"
+#
+# and I only want to install a hint to the example conf
+#
+cat <<___ > etc/drbd.conf
+#
+# please have a a look at the example configuration file in
+# %{_docdir}/drbd.conf
+#
+___
%clean
-rm -rf %{buildroot}
+[ -n $RPM_BUILD_ROOT -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
%files -f %{_builddir}/%{name}-%{version}/file.list
+%defattr(755,root,root)
+/sbin/drbdsetup
+/etc/ha.d/resource.d/datadisk
+
+%defattr(644,root,root)
+%config(noreplace) /etc/drbd.conf
+
+%defattr(700,root,root)
+%dir /var/lib/drbd
+
%defattr(-,root,root)
-%{_mandir}/man8/datadisk.8.gz
-%{_mandir}/man8/drbd.8.gz
%{_mandir}/man8/drbdsetup.8.gz
%{_mandir}/man5/drbd.conf.5.gz
-/sbin/drbdsetup
-/etc/rc.d/init.d/drbd
-/etc/ha.d/resource.d/datadisk
+%{_mandir}/man8/drbd.8.gz
+%{_mandir}/man8/datadisk.8.gz
+%{_mandir}/ja/man8/drbdsetup.8.gz
+%{_mandir}/ja/man5/drbd.conf.5.gz
+%{_mandir}/ja/man8/drbd.8.gz
+%{_mandir}/ja/man8/datadisk.8.gz
+%{_mandir}/pt_BR/man8/drbdsetup.8.gz
+%{_mandir}/pt_BR/man5/drbd.conf.5.gz
+%{_mandir}/pt_BR/man8/drbd.8.gz
+%{_mandir}/pt_BR/man8/datadisk.8.gz
%doc scripts/drbd.conf
%doc documentation/NFS-Server-README.txt
%doc COPYING
@@ -60,11 +93,11 @@ rm -rf %{buildroot}
FL=%{_docdir}/%{name}-%{version}/file.list
if [ $1 -eq 1 ]; then
- for d in $(sed 's/^\(\/lib\/modules\/[^/]*\).*/\1/' $FL) ; do
+ for d in $(sed '/^\/lib/!d;s/^\(\/lib\/modules\/[^/]*\).*/\1/' $FL) ; do
find $d -name drbd.o -exec mv -f {} {}.old \;
done
fi
-for f in $(sed 's/\.new$//' $FL) ; do
+for f in $(sed '/^\/lib/!d;s/\.new$//' $FL) ; do
ln -f $f.new $f
done
@@ -76,10 +109,10 @@ chkconfig --add drbd
FL=%{_docdir}/%{name}-%{version}/file.list
if [ $1 -eq 0 ]; then
- for f in $(sed 's/\.new$//' $FL) ; do
+ for f in $(sed '/^\/lib/!d;s/\.new$//' $FL) ; do
rm $f
done
- for d in $(sed 's/^\(\/lib\/modules\/[^/]*\).*/\1/' $FL) ; do
+ for d in $(sed '/^\/lib/!d;s/^\(\/lib\/modules\/[^/]*\).*/\1/' $FL) ; do
for f in $(find $d -name drbd.o.old -print) ; do
mv $f $(echo $f | sed 's/\.old$//')
done