Subject: [Nel] Patches for GNU/Linux packaging

From: Loic Dachary <[email-masked]>
Date: Mon, 11 Mar 2002 21:44:32 +0100

Hi,

	Here is a detailed description of the change I had to do in
order to generate the debian packages. I did not try to "improve"
anything and limited myself to things that were strictly necessary for
packaging purposes. I hope you'll find this patch acceptable for the
CVS tree. Since it is bit over the 15 lines threshold, I guess it raises
the copyright assignment question once more. Any news on this side ?

	All changes were made so that the previous behaviour does not
change. I've added things and fixed bugs but did not alter the way
nel/snowballs/nelns previously behaved in any way, except for the 
installation of components of course:

	All services daemon (sno_* + *_service) are installed in /usr/sbin
	instead of /usr/bin.

	Logs go to /var/log/{snowballs,nelns}
	
	Configuration files are fetched in /etc/{snowballs,nelns}

	Local state file (login_service.udb) is in /var/games/nelns

	Data is fetched in /usr/share/games/snowballs

Makefiles:
	- Added numerous missing files in EXTRA_DIST so that 
	  make dist does a proper job
	- dist-hook is used to get rid of CVS directories 
	  leftovers instead of replacing EXTRA_DIST
	- LDADD mostly suppressed, there is no need to specify
	  -lnelnet etc., configure does it for us
	- DIST_SUBDIRS were added where SUBDIRS = @something@ was
	  used to keep make dist happy
	- Added numerous missing headers in noinst_HEADERS

acinclude.m4:
	- Reworked AM_PATH_NEL 

		Priority works as follows (higher to lower)
		. --with-nel-include and --with-nel-lib
		. --with-nel
		. nel-config

		When --with-nel* was specified, libraries were not
		collected, this was fixed. AC_CHECK_LIB stacks what it
		finds, the macro uses LDFLAGS (previously unused) to
		make sure it searches in the right place.

		Comment and removed unused variables

		Replaced MY_NEL_LIB_CHK tricks with play AC_CHECK_LIB.
		It now takes only three args.

		--without-nel triggers an error

	- Reworked AM_PATH_STLPORT

		--without-stlport triggers an error

		--with-stlport without argument is supported and DTRT

		Priority works as follows (higher to lower)
		. --with-stlport-include and --with-stlport-lib
		. --with-stlport
		It was the opposite and generated some confusion
		
		Use AC_CHECK_LIB and AC_CHECK_HEADER rather than a
		more complex combination of AC_TRY_LINK & CPPFLAGS
		tricks

		Switch to c++ using AC_LANG_* macros

nel: configure.in, acconfig.h, debug.cpp:

	- created acconfig.h and modified configure.in to define
	  --without-logging that suppresses *all* log.log + stdout
	  information

	- debug.cpp uses NEL_DEFAULT_DISPLAYER and NEL_LOG_IN_FILE
	  to figure out if it should be verbose. The default is to
	  be verbose on both channels, this is unchanged.

	- -I${top_srcdir} is added to CXXFLAGS + CFLAGS so that 
	  building in a directory that is not the source directory
	  works

nel-config.in:

	- New option --ldflags returns -L${libdir}. It is used
	  by AM_PATH_NEL instead of --libs since AC_CHECK_LIB
	  already collects available libraries.

service(_5)?.{h,cpp} + all nel services daemons and associated configure.in:

	- NLNET_SERVICE_MAIN takes two more arguments
	  ConfigDir + LogDir

	- They are defined as static and default to "" so that the
	  previous behaviour (create all files in current directory)
	  is preserved.

	- nelns & snowballs configure.in files define the path of the 
	  log + config directory (log = /var/log/nelns, config = /etc/nelns,
	  typically) and daemons get them by including config.h. 

	- If config.h is not available (there are people who dislike autoconf
	  for some reason ;-) the path is set to "", as it was before.

nelns + snowballs configure.in + Makefile.am:

	- added comments to AM_PATH_NEL

	- removed broken AC_CONST (if your c++ compiler does not support
	  const you're in trouble and having AC_CONST work by switching to
	  the proper (unused) language is not worth the effort)

	- now install daemons in /usr/sbin instead of /usr/bin

	- install configuration files *.cfg in pkgsysconf that is
	  defined to $sysconf/{nelns,snowballs}

	- configuration files are fetched from /etc/{snowballs,nelns}

	- game data are fetched from /usr/share/games/snowballs

documentation:

	- various documentation typo fixed

	- recommend 4.5

Here are the patches, against Sunday 10 CVS tree.

-- 
Loic   Dachary         http://www.dachary.org/  [email-masked]
12 bd  Magenta         http://www.senga.org/      [email-masked]
75010    Paris         T: 33 1 42 45 07 97          [email-masked]
        GPG Public Key: http://www.dachary.org/loic/gpg.txt