Ethereal-users: [Ethereal-users] Re: RedHat make rpm-package [PATCH]

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Duncan Sargeant <dunc-mail-131CBAE@xxxxxxx>
Date: Tue, 22 Jun 2004 19:39:55 +1000
dan1@xxxxxxxxxxxx wrote on Wed May 12, at 19:46 +0200:
> Hello.
>  
> I'm having a trouble creating the rpm package for RedHat 7.1, for the latest 
> version of ethereal.
> The compilation of ethereal worked fine, but when I start 'make rpm-package', the 
> rpm compilation stops and it says:
> -----
> RPM build errors:
>     File not found by glob: /tmp/ethereal-0.10.3-root/usr/lib/libwiretap.so*
>     File not found by glob: /tmp/ethereal-0.10.3-root/usr/lib/libethereal.so*
> make: *** [rpm-package] Error 1
> -----
>  
> The /tmp/ethereal-0.10.3-root/usr/lib/ directory is not present, and I think that 
> it should be created by rpm-package, but it isn't.
> I tried to make a symbolic link to the directory /usr/src/ethereal-
> 0.10.3/packaging/rpm/BUILD/ethereal-0.10.3/wiretap/.libs/ where the requested file 
> stands, but this doesn't work because I think that the tmp dir is deleted and 
> recreated by the rpm-package.
>  
> Any help is welcome...
>  
> Thank you,
>  
> Daniel

Hi Daniel, and list.

I just went through the same PAINful experience (also on rh7) and came
out with success.  If anyone knows a way to skip straight to the
install step when building an RPM, I'm all ears.  I ended up
suspending the make rpm-package after its configure, then:

yes n | cp -i -r -d packaging/rpm/BUILD/ethereal-0.10.4.old/* packaging/rpm/BUILD/ethereal-0.10.4

then fg to continue the build.  It mostly worked.  

I don't know much about specfiles, but eventually, I came up with
a working spec file.  The patch is attached.

It can't be worse than what's already there, but I didn't check to see
whether ethereal did actually try to install into /etc as promised in
the previous specfile.

enjoy, and good luck :-)
,dunc
--- ethereal.spec	Tue Jun 22 19:28:35 2004
+++ /home/dunc/ethereal.spec	Tue Jun 22 19:26:19 2004
@@ -1,7 +1,7 @@
 # Note that this is NOT a relocatable package
 %define ver      0.10.4
 %define rel      1
-%define prefix   /usr/X11R6
+%define prefix   /usr
 
 Summary:	Network traffic analyzer
 Name:		ethereal
@@ -26,21 +26,8 @@
 
 %install
 rm -rf $RPM_BUILD_ROOT
-mkdir -p $RPM_BUILD_ROOT/{etc,usr/X11R6/bin,usr/X11R6/man/man1,usr/bin,usr/man/man1}
 
-# can't use make install here. It would put manuf directly into /etc
-cp ethereal $RPM_BUILD_ROOT/usr/X11R6/bin
-cp tethereal $RPM_BUILD_ROOT/usr/bin
-cp editcap $RPM_BUILD_ROOT/usr/bin
-cp ethereal.1 $RPM_BUILD_ROOT/usr/X11R6/man/man1
-cp tethereal.1 $RPM_BUILD_ROOT/usr/man/man1
-cp editcap.1 $RPM_BUILD_ROOT/usr/man/man1
-cp manuf $RPM_BUILD_ROOT/etc
-cp dictionary.dtd $RPM_BUILD_ROOT/etc
-cp dictionary.xml $RPM_BUILD_ROOT/etc
-cp mobileipv4.xml $RPM_BUILD_ROOT/etc
-cp nasreq.xml $RPM_BUILD_ROOT/etc
-cp sunping.xml $RPM_BUILD_ROOT/etc
+make DESTDIR=$RPM_BUILD_ROOT install
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -51,20 +38,19 @@
 %doc README.hpux  README.linux  README.vmware
 %doc README.aix  README.irix  README.tru64  README.win32
 %doc README.bsd
-%config /etc/manuf
-%config /etc/dictionary.dtd
-%config /etc/dictionary.xml
-%config /etc/mobileipv4.xml
-%config /etc/nasreq.xml
-%config /etc/sunping.xml
-/usr/X11R6/bin/ethereal
-/usr/X11R6/man/man1/ethereal.1.gz
-/usr/bin/tethereal
-/usr/lib/libwiretap.so*
-/usr/lib/libethereal.so*
-/usr/bin/editcap
-/usr/man/man1/tethereal.1.gz
-/usr/man/man1/editcap.1.gz
+%config /usr/share/ethereal/manuf
+%config /usr/share/ethereal/diameter/dictionary.dtd
+%config /usr/share/ethereal/diameter/dictionary.xml
+%config /usr/share/ethereal/diameter/mobileipv4.xml
+%config /usr/share/ethereal/diameter/nasreq.xml
+%config /usr/share/ethereal/diameter/sunping.xml
+/usr/bin
+/usr/lib
+/usr/lib/ethereal/plugins/%ver
+/usr/man/man1
+/usr/man/man4
+/usr/share/ethereal/help
+
 
 %changelog
 * Sat Feb 07 2004 Joerg Mayer