Revamp the RPM building process. For versions of rpm that support

"--define", we now build the RPM and SRPM packages in packages/rpm.
As a result, one need not be root to build RPM-based packages.

Move the specfile to packaging/rpm/SPECS.

Update the INSTALL document to include the various packaging makefile
targets.

svn path=/trunk/; revision=4581
This commit is contained in:
Gerald Combs 2002-01-20 23:05:25 +00:00
parent 287425df9c
commit b11f1955e4
7 changed files with 68 additions and 54 deletions

23
INSTALL
View File

@ -50,9 +50,9 @@ Installation Checklist
that have already been captured to disk by other programs.
You can build or not build ethereal, tethereal, editcap, and
mergecap with the appropriate --enable-XXX or --disable-XXX flags.
The default is to build everything. If GTK+ is not detected
on the system, then ethereal won't be built.
mergecap with the appropriate --enable-XXX or --disable-XXX
flags. The default is to build everything. If GTK+ is not
detected on the system, then ethereal won't be built.
[ ] 4. Run 'make'. Hopefully, you won't run into any problems.
@ -60,4 +60,19 @@ Installation Checklist
have root privileges in order to capture live data.
[ ] 6. Run 'make install'. If you wish to install the man page, run
'make install-man'. You're done.
'make install-man'. If you're running a system that supports
the Apt, RPM, or System V Release 4 packaging systems, you can
run one of
make debian-package # Builds a binary package using dpkg
make rpm-package # Builds a binary package using rpm
make srpm-package # Builds a source package using rpm
make svr4-package # Builds a source package using pkgmk
make solaris-package # Same as "make svr4-package"
to make an installable package for your system.
If you have trouble with the build or installation process, you can
find assistance on the ethereal-users and ethereal-dev mailing lists.
See http://www.ethereal.com/lists/ for details.

View File

@ -1,7 +1,7 @@
# Makefile.am
# Automake file for Ethereal
#
# $Id: Makefile.am,v 1.404 2002/01/10 01:28:43 guy Exp $
# $Id: Makefile.am,v 1.405 2002/01/20 23:05:22 gerald Exp $
#
# Ethereal - Network traffic analyzer
# By Gerald Combs <gerald@ethereal.com>
@ -969,24 +969,30 @@ svr4-package: $(bin_SCRIPTS) $(lib_LTLIBRARIES)
solaris-package: svr4-package
specfile=$(top_srcdir)/packaging/rpm/ethereal.spec
rpm_topdir=`cd $(top_srcdir) && pwd`/packaging/rpm
rpm-package: dist
if test x$(HAVE_RPM_PACKAGING) = xyes ; then \
cp $(top_srcdir)/$(distdir).tar.gz $(RPM_SOURCEDIR) ; \
rpm -bb --clean --rmsource $(specfile) ; \
if test x$(HAVE_RPM) = xyes ; then \
cd $(rpm_topdir) ; \
mkdir BUILD RPMS SOURCES ; \
cd SOURCES ; \
ln -s ../../../$(distdir).tar.gz ; \
cd .. ; \
rpm --define "_topdir `cd . && pwd`" -bb SPECS/ethereal.spec && \
echo "Package successfully built in `pwd`/RPMS." ; \
else \
echo "Error: RPM executable and/or source directory not found." ; \
echo "Package build abandoned." ; \
fi
srpm-package: dist
if test x$(HAVE_RPM_PACKAGING) = xyes ; then \
cp $(top_srcdir)/$(distdir).tar.gz $(RPM_SOURCEDIR) ; \
rpm -bs --clean --rmsource $(specfile) ; \
if test x$(HAVE_RPM) = xyes ; then \
cd $(rpm_topdir) ; \
mkdir BUILD SRPMS SOURCES ; \
cd SOURCES ; \
ln -s ../../../$(distdir).tar.gz ; \
cd .. ; \
rpm --define "_topdir `cd . && pwd`" -bs SPECS/ethereal.spec && \
echo "Package successfully built in `pwd`/SRPMS." ; \
else \
echo "Error: RPM executable and/or source directory not found." ; \
echo "Package build abandoned." ; \
fi
debian-package: debian/rules

View File

@ -2,7 +2,7 @@ dnl Macros that test for specific features.
dnl This file is part of the Autoconf packaging for Ethereal.
dnl Copyright (C) 1998-2000 by Gerald Combs.
dnl
dnl $Id: acinclude.m4,v 1.37 2002/01/18 08:28:22 guy Exp $
dnl $Id: acinclude.m4,v 1.38 2002/01/20 23:05:22 gerald Exp $
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
@ -492,3 +492,23 @@ AC_DEFUN(AC_ETHEREAL_SSL_CHECK,
AC_MSG_RESULT(not required)
fi
])
#
# AC_ETHEREAL_RPM_CHECK
# Looks for the rpm program, and checks to see if we can redefine "_topdir".
#
AC_DEFUN(AC_ETHEREAL_RPM_CHECK,
[
AC_CHECK_PROG(ac_cv_ethereal_have_rpm, rpm, "yes", "no")
if test "x$ac_cv_ethereal_have_rpm" = "xyes"; then
rpm --define '_topdir /tmp' > /dev/null 2>&1
AC_MSG_CHECKING(to see if we can redefine _topdir)
if test $? -eq 0 ; then
AC_MSG_RESULT(yes)
HAVE_RPM=yes
else
AC_MSG_RESULT(no. You'll have to build packages manually.)
HAVE_RPM=no
fi
fi
])

View File

@ -1,4 +1,4 @@
# $Id: configure.in,v 1.144 2002/01/09 23:21:54 gram Exp $
# $Id: configure.in,v 1.145 2002/01/20 23:05:22 gerald Exp $
dnl
dnl Process this file with autoconf 2.13 or later to produce a
dnl configure script; 2.12 doesn't generate a "configure" script that
@ -38,7 +38,6 @@ AC_SUBST(PYTHON)
AC_CHECK_PROG(HAVE_PKGPROTO, pkgproto, "yes", "no")
AC_CHECK_PROG(HAVE_PKGMK, pkgmk, "yes", "no")
AC_CHECK_PROG(HAVE_PKGTRANS, pkgtrans, "yes", "no")
AC_CHECK_PROG(HAVE_RPM, rpm, "yes", "no")
if test x$HAVE_PKGPROTO = xyes -a x$HAVE_PKGMK = xyes \
-a x$HAVE_PKGTRANS = xyes ; then
@ -48,38 +47,8 @@ else
fi
AC_SUBST(HAVE_SVR4_PACKAGING)
# Grr. Rpm 2.x has a nifty "--showrc" flag that lists all of the current
# configuration values. Version 3.x took the niftiness away by returning
# the values in their raw, unexpanded, macro-embedded form. We can either
# try to expand the values we get from 3.x, or poke around for popular build
# directories.
HAVE_RPM_PACKAGING=no
if test x$HAVE_RPM = xyes ; then
AC_MSG_CHECKING(for rpm build directories)
RPM_SOURCESDIR=`rpm --showrc | grep "^sourcedir" | \
sed -e 's/.*: //' 2> /dev/null`
if test x$RPM_SPECDIR = x ; then
# Red Hat : /usr/src/redhat
# Mandrake : /usr/scr/rpm
# SuSE : /usr/src/packages
for TEST_DIR in /usr/src/redhat /usr/src/rpm /usr/src/packages ; do
if test -d $TEST_DIR/SPECS -a -d $TEST_DIR/SOURCES -a \
-d $TEST_DIR/RPMS -a -d $TEST_DIR/SRPMS -a \
-d $TEST_DIR/BUILD ; then
RPM_SOURCESDIR=$TEST_DIR/SOURCES
fi
done
fi
if test x$RPM_SOURCESDIR = x ; then
AC_MSG_RESULT(not found)
RPM_SOURCESDIR=""
else
AC_MSG_RESULT(found)
HAVE_RPM_PACKAGING=yes
fi
fi
AC_SUBST(HAVE_RPM_PACKAGING)
AC_ETHEREAL_RPM_CHECK
AC_SUBST(HAVE_RPM)
# If we're running gcc, add '-Wall' to CFLAGS.
AC_MSG_CHECKING(to see if we can add '-Wall' to CFLAGS)
@ -698,7 +667,8 @@ AC_OUTPUT(
packaging/Makefile
packaging/nsis/Makefile
packaging/rpm/Makefile
packaging/rpm/ethereal.spec
packaging/rpm/SPECS/Makefile
packaging/rpm/SPECS/ethereal.spec
packaging/svr4/Makefile
packaging/svr4/checkinstall
packaging/svr4/pkginfo

View File

@ -1 +1,3 @@
EXTRA_DIST = ethereal.spec.in
SUBDIRS = SPECS
clean-local:
rm -rf BUILD RPMS SOURCES SRPMS

View File

@ -0,0 +1 @@
EXTRA_DIST = ethereal.spec.in