diff --git a/ChangeLog b/ChangeLog index 7b4481fd6..9f7b3b7b1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,18 @@ 2008-07-13 Badlop + * src/configure.ac: Update installation permissions (EJAB-402) + * src/configure: Likewise + + * src/Makefile.in: The mnesia, ebin and priv dirs are now + installed in different locations. Install header files and + documentation (EJAB-696) + * doc/guide.tex: Likewise + * doc/guide.html: Likewise + + * include/*.hrl: Place for all ejabberd header files (EJAB-696) + * src/*/*.erl: Update references to header files + * src/*/Makefile.in: Include the include/ dir + * src/configure.ac: Allow to execute ejabberd with a normal system user (thanks to Viq)(EJAB-402) * src/configure: Likewise diff --git a/doc/Makefile b/doc/Makefile index c1f35fdff..2fda395a0 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -16,7 +16,7 @@ all: release pdf html release: @echo "Notes for the releaser:" @echo "* Do not forget to add a link to the release notes in guide.tex" - @echo "* Do not forget to update the version number in src/ejabberd.hrl!" + @echo "* Do not forget to update the version number in src/ejabberd.app!" @echo "* Do not forget to update the features in introduction.tex (including \new{} and \improved{} tags)." @echo "Press any key to continue" @read foo diff --git a/doc/guide.html b/doc/guide.html index c429714fc..9b655b7b8 100644 --- a/doc/guide.html +++ b/doc/guide.html @@ -359,26 +359,31 @@ To get the full list run the command:

Note that you probably need administrative privileges in the system to install ejabberd.

The files and directories created are, by default:

- /etc/ejabberd/
Configuration files: + /etc/ejabberd/
Configuration directory:
ejabberd.cfg
ejabberd configuration file
ejabberdctl.cfg
Configuration file of the administration script -
inetrc
Network DNS configuration +
inetrc
Network DNS configuration file
-
/sbin/ejabberdctl
Administration script (see section 4.1) -
/var/lib/ejabberd/
+
/lib/ejabberd/
- .erlang.cookie
Erlang cookie file (see section 5.3) -
db
Mnesia database spool files -
ebin
Binary Erlang files (*.beam) -
priv
+ ebin/
Erlang binary files (*.beam) +
include/
Erlang header files (*.hrl) +
priv/
Additional files required at runtime
- bin
Binary C programs -
lib
Binary system libraries (*.so) -
msgs
Translated strings (*.msgs) + bin/
Binary C programs +
lib/
Binary system libraries (*.so) +
msgs/
Translation files (*.msgs)
-
/var/log/ejabberd/
Log files (see section 7.2): +
/sbin/ejabberdctl
Administration script (see section 4.1) +
/share/doc/ejabberd/
Documentation of ejabberd +
/var/lib/ejabberd/
Spool directory: +
+ .erlang.cookie
Erlang cookie file (see section 5.3) +
acl.DCD, ...
Mnesia database spool files (*.DCD, *.DCL, *.DAT) +
+
/var/log/ejabberd/
Log directory (see section 7.2):
ejabberd.log
ejabberd service log
sasl.log
Erlang/OTP system log @@ -2904,7 +2909,7 @@ Starts the Erlang system detached from the system console. Specify the directory where Erlang binary files (*.beam) are located.
-s ejabberd
Tell Erlang runtime system to start the ejabberd application. -
-mnesia dir "/var/lib/ejabberd/db/nodename"
+
-mnesia dir "/var/lib/ejabberd/"
Specify the Mnesia database directory.
-sasl sasl_error_logger {file, "/var/log/ejabberd/sasl.log"}
Path to the Erlang/OTP system log file. @@ -3074,10 +3079,10 @@ Contains IP addresses of clients. If the loglevel is set to 5, it contains whole conversations and passwords. If a logrotate system is used, there may be several log files with similar information, so it is preferable to secure the whole /var/log/ejabberd/ directory. -
Mnesia database spool files: /var/lib/ejabberd/db/*
+
Mnesia database spool files in /var/lib/ejabberd/
The files store binary data, but some parts are still readable. The files are generated by Mnesia and their permissions cannot be set directly, -so it is preferable to secure the whole /var/lib/ejabberd/db/ directory. +so it is preferable to secure the whole /var/lib/ejabberd/ directory.
Erlang cookie file: /var/lib/ejabberd/.erlang.cookie
See section 5.3.

diff --git a/doc/guide.tex b/doc/guide.tex index faf37104e..7e440ac7c 100644 --- a/doc/guide.tex +++ b/doc/guide.tex @@ -360,26 +360,31 @@ to install \term{ejabberd}. The files and directories created are, by default: \begin{description} - \titem{/etc/ejabberd/} Configuration files: + \titem{/etc/ejabberd/} Configuration directory: \begin{description} \titem{ejabberd.cfg} ejabberd configuration file \titem{ejabberdctl.cfg} Configuration file of the administration script - \titem{inetrc} Network DNS configuration + \titem{inetrc} Network DNS configuration file \end{description} - \titem{/sbin/ejabberdctl} Administration script (see section~\ref{ejabberdctl}) - \titem{/var/lib/ejabberd/} + \titem{/lib/ejabberd/} \begin{description} - \titem{.erlang.cookie} Erlang cookie file (see section \ref{cookie}) - \titem{db} Mnesia database spool files - \titem{ebin} Binary Erlang files (*.beam) - \titem{priv} + \titem{ebin/} Erlang binary files (*.beam) + \titem{include/} Erlang header files (*.hrl) + \titem{priv/} Additional files required at runtime \begin{description} - \titem{bin} Binary C programs - \titem{lib} Binary system libraries (*.so) - \titem{msgs} Translated strings (*.msgs) + \titem{bin/} Binary C programs + \titem{lib/} Binary system libraries (*.so) + \titem{msgs/} Translation files (*.msgs) \end{description} \end{description} - \titem{/var/log/ejabberd/} Log files (see section~\ref{logfiles}): + \titem{/sbin/ejabberdctl} Administration script (see section~\ref{ejabberdctl}) + \titem{/share/doc/ejabberd/} Documentation of ejabberd + \titem{/var/lib/ejabberd/} Spool directory: + \begin{description} + \titem{.erlang.cookie} Erlang cookie file (see section \ref{cookie}) + \titem{acl.DCD, ...} Mnesia database spool files (*.DCD, *.DCL, *.DAT) + \end{description} + \titem{/var/log/ejabberd/} Log directory (see section~\ref{logfiles}): \begin{description} \titem{ejabberd.log} ejabberd service log \titem{sasl.log} Erlang/OTP system log @@ -3720,7 +3725,7 @@ The command line parameters: Specify the directory where Erlang binary files (*.beam) are located. \titem{-s ejabberd} Tell Erlang runtime system to start the \ejabberd{} application. - \titem{-mnesia dir "/var/lib/ejabberd/db/nodename"} + \titem{-mnesia dir "/var/lib/ejabberd/"} Specify the Mnesia database directory. \titem{-sasl sasl\_error\_logger \{file, "/var/log/ejabberd/sasl.log"\}} Path to the Erlang/OTP system log file. @@ -3953,10 +3958,10 @@ write and execute those files and directories. If the loglevel is set to 5, it contains whole conversations and passwords. If a logrotate system is used, there may be several log files with similar information, so it is preferable to secure the whole \term{/var/log/ejabberd/} directory. - \titem{Mnesia database spool files: /var/lib/ejabberd/db/*} + \titem{Mnesia database spool files in /var/lib/ejabberd/} The files store binary data, but some parts are still readable. The files are generated by Mnesia and their permissions cannot be set directly, - so it is preferable to secure the whole \term{/var/lib/ejabberd/db/} directory. + so it is preferable to secure the whole \term{/var/lib/ejabberd/} directory. \titem{Erlang cookie file: /var/lib/ejabberd/.erlang.cookie} See section \ref{cookie}. \end{description} diff --git a/src/adhoc.hrl b/include/adhoc.hrl similarity index 100% rename from src/adhoc.hrl rename to include/adhoc.hrl diff --git a/src/ejabberd.hrl b/include/ejabberd.hrl similarity index 100% rename from src/ejabberd.hrl rename to include/ejabberd.hrl diff --git a/src/ejabberd_config.hrl b/include/ejabberd_config.hrl similarity index 100% rename from src/ejabberd_config.hrl rename to include/ejabberd_config.hrl diff --git a/src/ejabberd_ctl.hrl b/include/ejabberd_ctl.hrl similarity index 100% rename from src/ejabberd_ctl.hrl rename to include/ejabberd_ctl.hrl diff --git a/src/web/ejabberd_http.hrl b/include/ejabberd_http.hrl similarity index 100% rename from src/web/ejabberd_http.hrl rename to include/ejabberd_http.hrl diff --git a/src/web/ejabberd_web_admin.hrl b/include/ejabberd_web_admin.hrl similarity index 100% rename from src/web/ejabberd_web_admin.hrl rename to include/ejabberd_web_admin.hrl diff --git a/src/eldap/eldap.hrl b/include/eldap.hrl similarity index 100% rename from src/eldap/eldap.hrl rename to include/eldap.hrl diff --git a/src/jlib.hrl b/include/jlib.hrl similarity index 100% rename from src/jlib.hrl rename to include/jlib.hrl diff --git a/src/mod_privacy.hrl b/include/mod_privacy.hrl similarity index 100% rename from src/mod_privacy.hrl rename to include/mod_privacy.hrl diff --git a/src/mod_proxy65/mod_proxy65.hrl b/include/mod_proxy65.hrl similarity index 100% rename from src/mod_proxy65/mod_proxy65.hrl rename to include/mod_proxy65.hrl diff --git a/src/mod_roster.hrl b/include/mod_roster.hrl similarity index 100% rename from src/mod_roster.hrl rename to include/mod_roster.hrl diff --git a/src/mod_pubsub/pubsub.hrl b/include/pubsub.hrl similarity index 100% rename from src/mod_pubsub/pubsub.hrl rename to include/pubsub.hrl diff --git a/src/Makefile.in b/src/Makefile.in index 6cb06c922..302294b86 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -12,32 +12,34 @@ ERLANG_CFLAGS= @ERLANG_CFLAGS@ EXPAT_LIBS = @EXPAT_LIBS@ ERLANG_LIBS = @ERLANG_LIBS@ -ERLC_FLAGS += @ERLANG_SSL39@ - ASN_FLAGS = -bber_bin +der +compact_bit_string +optimize +noobj + +EFLAGS += @ERLANG_SSL39@ +EFLAGS += -I ../include + # make debug=true to compile Erlang module with debug informations. ifdef debug - ERLC_FLAGS+=+debug_info + EFLAGS+=+debug_info endif ifdef ejabberd_debug - ERLC_FLAGS+=-Dejabberd_debug + EFLAGS+=-Dejabberd_debug endif ifeq (@hipe@, true) - ERLC_FLAGS+=+native + EFLAGS+=+native endif ifeq (@roster_gateway_workaround@, true) - ERLC_FLAGS+=-DROSTER_GATEWAY_WORKAROUND + EFLAGS+=-DROSTER_GATEWAY_WORKAROUND endif ifeq (@full_xml@, true) - ERLC_FLAGS+=-DFULL_XML_SUPPORT + EFLAGS+=-DFULL_XML_SUPPORT endif ifeq (@transient_supervisors@, false) - ERLC_FLAGS+=-DNO_TRANSIENT_SUPERVISORS + EFLAGS+=-DNO_TRANSIENT_SUPERVISORS endif INSTALL_EPAM= @@ -58,18 +60,47 @@ BEAMS = $(SOURCES:.erl=.beam) DESTDIR = -EJABBERDDIR = $(DESTDIR)@localstatedir@/lib/ejabberd -BEAMDIR = $(EJABBERDDIR)/ebin -SPOOLDIR = $(EJABBERDDIR)/db -PRIVDIR = $(EJABBERDDIR)/priv -COOKIEFILE = $(EJABBERDDIR)/.erlang.cookie -SODIR = $(PRIVDIR)/lib -PBINDIR = $(PRIVDIR)/bin -MSGSDIR = $(PRIVDIR)/msgs -LOGDIR = $(DESTDIR)@localstatedir@/log/ejabberd +# /etc/ejabberd/ ETCDIR = $(DESTDIR)@sysconfdir@/ejabberd + +# /sbin/ SBINDIR = $(DESTDIR)@sbindir@ +# /lib/ejabberd/ +EJABBERDDIR = $(DESTDIR)@libdir@/ejabberd + +# /share/doc/ejabberd +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +DATAROOTDIR = @datarootdir@ +DOCDIR = @docdir@ + +# /usr/lib/ejabberd/ebin/ +BEAMDIR = $(EJABBERDDIR)/ebin + +# /usr/lib/ejabberd/include/ +INCLUDEDIR = $(EJABBERDDIR)/include + +# /usr/lib/ejabberd/priv/ +PRIVDIR = $(EJABBERDDIR)/priv + +# /usr/lib/ejabberd/priv/bin +PBINDIR = $(PRIVDIR)/bin + +# /usr/lib/ejabberd/priv/lib +SODIR = $(PRIVDIR)/lib + +# /usr/lib/ejabberd/priv/msgs +MSGSDIR = $(PRIVDIR)/msgs + +# /var/lib/ejabberd/ +SPOOLDIR = $(DESTDIR)@localstatedir@/lib/ejabberd + +# /var/lib/ejabberd/.erlang.cookie +COOKIEFILE = $(SPOOLDIR)/.erlang.cookie + +# /var/log/ejabberd/ +LOGDIR = $(DESTDIR)@localstatedir@/log/ejabberd + ifeq ($(shell uname),Darwin) DYNAMIC_LIB_CFLAGS = -fPIC -bundle -flat_namespace -undefined suppress else @@ -86,7 +117,7 @@ $(BEAMS): $(ERLBEHAVBEAMS) all-recursive: $(ERLBEHAVBEAMS) %.beam: %.erl - @ERLC@ -W $(ERLC_FLAGS) $< + @ERLC@ -W $(EFLAGS) $< all-recursive install-recursive uninstall-recursive \ @@ -101,7 +132,7 @@ mostlyclean-recursive maintainer-clean-recursive: %.hrl: %.asn1 @ERLC@ $(ASN_FLAGS) $< - @ERLC@ -W $(ERLC_FLAGS) $*.erl + @ERLC@ -W $(EFLAGS) $*.erl $(ERLSHLIBS): %.so: %.c $(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) \ @@ -114,41 +145,89 @@ $(ERLSHLIBS): %.so: %.c $(DYNAMIC_LIB_CFLAGS) install: all + # + # Configuration files + install -d -m 750 -g @INSTALLUSER@ $(ETCDIR) + [ -f $(ETCDIR)/ejabberd.cfg ] \ + && install -b -m 640 -g @INSTALLUSER@ ejabberd.cfg.example $(ETCDIR)/ejabberd.cfg-new \ + || install -b -m 640 -g @INSTALLUSER@ ejabberd.cfg.example $(ETCDIR)/ejabberd.cfg + sed -e "s*@rootdir@*@prefix@*" \ + -e "s*@installuser@*@INSTALLUSER@*" \ + -e "s*@LIBDIR@*@libdir@*" \ + -e "s*@SYSCONFDIR@*@sysconfdir@*" \ + -e "s*@LOCALSTATEDIR@*@localstatedir@*" \ + -e "s*@erl@*@ERL@*" ejabberdctl.template \ + > ejabberdctl.example + [ -f $(ETCDIR)/ejabberdctl.cfg ] \ + && install -b -m 640 -g @INSTALLUSER@ ejabberdctl.cfg.example $(ETCDIR)/ejabberdctl.cfg-new \ + || install -b -m 640 -g @INSTALLUSER@ ejabberdctl.cfg.example $(ETCDIR)/ejabberdctl.cfg + install -b -m 644 -g @INSTALLUSER@ inetrc $(ETCDIR)/inetrc + # + # Administration script + install -m 550 -g @INSTALLUSER@ ejabberdctl.example $(SBINDIR)/ejabberdctl + # + # Binary Erlang files install -d $(BEAMDIR) + install -m 644 *.app $(BEAMDIR) install -m 644 *.beam $(BEAMDIR) rm -f $(BEAMDIR)/configure.beam - install -m 644 *.app $(BEAMDIR) - install -d -m 750 -o @INSTALLUSER@ $(SPOOLDIR) - chown -R @INSTALLUSER@ $(SPOOLDIR)/* - chmod -R 750 $(SPOOLDIR)/* - install -d $(SODIR) + # + # ejabberd header files + install -d $(INCLUDEDIR) + install -m 644 ../include/*.hrl $(INCLUDEDIR) + # + # Binary C programs install -d $(PBINDIR) - install -m 644 *.so $(SODIR) $(INSTALL_EPAM) + # + # Binary system libraries + install -d $(SODIR) + install -m 644 *.so $(SODIR) + # + # Translated strings install -d $(MSGSDIR) install -m 644 msgs/*.msg $(MSGSDIR) - install -d -m 750 -o @INSTALLUSER@ $(ETCDIR) - [ -f $(ETCDIR)/ejabberd.cfg ] && install -b -m 644 ejabberd.cfg.example $(ETCDIR)/ejabberd.cfg-new || install -b -m 644 -o @INSTALLUSER@ ejabberd.cfg.example $(ETCDIR)/ejabberd.cfg - sed -e "s*@rootdir@*@prefix@*" -e "s*@installuser@*@INSTALLUSER@*" -e "s*@erl@*@ERL@*" ejabberdctl.template > ejabberdctl.example - [ -f $(ETCDIR)/ejabberdctl.cfg ] && install -b -m 644 ejabberdctl.cfg.example $(ETCDIR)/ejabberdctl.cfg-new || install -b -m 644 -o @INSTALLUSER@ ejabberdctl.cfg.example $(ETCDIR)/ejabberdctl.cfg - install -b -m 644 inetrc $(ETCDIR)/inetrc - install -m 550 -o @INSTALLUSER@ ejabberdctl.example $(SBINDIR)/ejabberdctl + # + # Spool directory + install -d -m 750 -o @INSTALLUSER@ $(SPOOLDIR) + chown -R @INSTALLUSER@ $(SPOOLDIR) + chmod -R 750 $(SPOOLDIR) + [ ! -f $(COOKIEFILE) ] || chown -o @INSTALLUSER@ $(COOKIEFILE) ; chmod 400 $(COOKIEFILE) + # + # Log directory install -d -m 750 -o @INSTALLUSER@ $(LOGDIR) - chown @INSTALLUSER@ $(COOKIEFILE) + chown -R @INSTALLUSER@ $(LOGDIR) + chmod -R 750 $(LOGDIR) + # + # Documentation + install -d $(DOCDIR) + install ../doc/guide.html $(DOCDIR) + install ../doc/*.png $(DOCDIR) + install ../doc/*.txt $(DOCDIR) uninstall: uninstall-binary uninstall-binary: - rm -rf $(BEAMDIR) - rm -rf $(SODIR) - rm -rf $(MSGSDIR) - rm -rf $(PRIVDIR) - rm -rf $(SBINDIR)/ejabberdctl + rm -f $(SBINDIR)/ejabberdctl + rm -fr $(DOCDIR) + rm -f $(BEAMDIR)/*.beam + rm -f $(BEAMDIR)/*.app + rm -fr $(BEAMDIR) + rm -f $(INCLUDEDIR)/*.hrl + rm -fr $(INCLUDEDIR) + rm -fr $(PBINDIR) + rm -f $(SODIR)/*.so + rm -fr $(SODIR) + rm -f $(MSGSDIR)/*.msgs + rm -fr $(MSGSDIR) + rm -fr $(PRIVDIR) + rm -fr $(EJABBERDDIR) uninstall-all: uninstall-binary rm -rf $(ETCDIR) - rm -rf $(LOGDIR) rm -rf $(EJABBERDDIR) + rm -rf $(SPOOLDIR) + rm -rf $(LOGDIR) clean: clean-recursive clean-local diff --git a/src/configure b/src/configure index 5b0fda4e9..f77db635c 100755 --- a/src/configure +++ b/src/configure @@ -1,6 +1,8 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61. +# Generated by GNU Autoconf 2.61 for ejabberd.erl version. +# +# Report bugs to . # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. @@ -570,13 +572,12 @@ MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. -PACKAGE_NAME= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= +PACKAGE_NAME='ejabberd.erl' +PACKAGE_TARNAME='ejabberd' +PACKAGE_VERSION='version' +PACKAGE_STRING='ejabberd.erl version' +PACKAGE_BUGREPORT='ejabberd@process-one.net' -ac_unique_file="ejabberd.erl" # Factoring default headers for most tests. ac_includes_default="\ #include @@ -752,7 +753,7 @@ sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE}' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' @@ -1216,7 +1217,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures this package to adapt to many kinds of systems. +\`configure' configures ejabberd.erl version to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1264,7 +1265,7 @@ Fine tuning of the installation directories: --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] + --docdir=DIR documentation root [DATAROOTDIR/doc/ejabberd] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] @@ -1276,7 +1277,9 @@ _ACEOF fi if test -n "$ac_init_help"; then - + case $ac_init_help in + short | recursive ) echo "Configuration of ejabberd.erl version:";; + esac cat <<\_ACEOF Optional Features: @@ -1331,6 +1334,7 @@ Some influential environment variables: Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. +Report bugs to . _ACEOF ac_status=$? fi @@ -1391,7 +1395,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -configure +ejabberd.erl configure version generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1405,7 +1409,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by $as_me, which was +It was created by ejabberd.erl $as_me version, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ @@ -1738,6 +1742,14 @@ fi + + + + + + + + @@ -4132,7 +4144,12 @@ echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - + ( cat <<\_ASBOX +## --------------------------------------- ## +## Report this to ejabberd@process-one.net ## +## --------------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 @@ -4377,7 +4394,12 @@ echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - + ( cat <<\_ASBOX +## --------------------------------------- ## +## Report this to ejabberd@process-one.net ## +## --------------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 @@ -4621,7 +4643,12 @@ echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - + ( cat <<\_ASBOX +## --------------------------------------- ## +## Report this to ejabberd@process-one.net ## +## --------------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 @@ -4889,7 +4916,12 @@ echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - + ( cat <<\_ASBOX +## --------------------------------------- ## +## Report this to ejabberd@process-one.net ## +## --------------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 @@ -5677,7 +5709,12 @@ echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - + ( cat <<\_ASBOX +## --------------------------------------- ## +## Report this to ejabberd@process-one.net ## +## --------------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 @@ -5850,7 +5887,12 @@ echo "$as_me: WARNING: krb5.h: section \"Present But Cannot Be Compiled\"" > echo "$as_me: WARNING: krb5.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: krb5.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: krb5.h: in the future, the compiler will take precedence" >&2;} - + ( cat <<\_ASBOX +## --------------------------------------- ## +## Report this to ejabberd@process-one.net ## +## --------------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for krb5.h" >&5 @@ -6306,7 +6348,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by $as_me, which was +This file was extended by ejabberd.erl $as_me version, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -6349,7 +6391,7 @@ Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -config.status +ejabberd.erl config.status version configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/src/configure.ac b/src/configure.ac index f474bfdb2..ee19d9c57 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.53) -AC_INIT(ejabberd.erl,, ejabberd@process-one.net) +AC_INIT(ejabberd.erl, version, [ejabberd@process-one.net], [ejabberd]) # Checks for programs. AC_PROG_CC diff --git a/src/ejabberd_auth_ldap.erl b/src/ejabberd_auth_ldap.erl index e22be1bc9..8cea87a81 100644 --- a/src/ejabberd_auth_ldap.erl +++ b/src/ejabberd_auth_ldap.erl @@ -58,7 +58,7 @@ ]). -include("ejabberd.hrl"). --include("eldap/eldap.hrl"). +-include("eldap.hrl"). -record(state, {host, eldap_id, diff --git a/src/ejabberd_zlib/Makefile.in b/src/ejabberd_zlib/Makefile.in index f24addbc3..3a70186bd 100644 --- a/src/ejabberd_zlib/Makefile.in +++ b/src/ejabberd_zlib/Makefile.in @@ -19,7 +19,8 @@ else DYNAMIC_LIB_CFLAGS = -fpic -shared endif -EFLAGS = -I .. -pz .. +EFLAGS += -I ../../include +EFLAGS += -pz .. # make debug=true to compile Erlang module with debug informations. ifdef debug EFLAGS+=+debug_info diff --git a/src/ejabberdctl.template b/src/ejabberdctl.template index 4b8e505fe..fcf0a80cc 100644 --- a/src/ejabberdctl.template +++ b/src/ejabberdctl.template @@ -13,13 +13,13 @@ HOST=localhost ERLANG_NODE=$NODE@$HOST ERL=@erl@ INSTALLUSER=@installuser@ -ROOTDIR=@rootdir@ -EJABBERD_CONFIG_PATH=$ROOTDIR/etc/ejabberd/ejabberd.cfg -LOGS_DIR=$ROOTDIR/var/log/ejabberd/ -EJABBERD_DB=$ROOTDIR/var/lib/ejabberd/db/$NODE +ETCDIR=@SYSCONFDIR@/ejabberd +EJABBERD_CONFIG_PATH=$ETCDIR/ejabberd.cfg +LOGDIR=@LOCALSTATEDIR@/log/ejabberd +SPOOLDIR=@LOCALSTATEDIR@/lib/ejabberd # read custom configuration -CONFIG=$ROOTDIR/etc/ejabberd/ejabberdctl.cfg +CONFIG=$ETCDIR/ejabberdctl.cfg [ -f "$CONFIG" ] && . "$CONFIG" # parse command line parameters @@ -32,8 +32,8 @@ while [ $# -ne 0 ] ; do --node) ERLANG_NODE=$1; shift ;; --config) EJABBERD_CONFIG_PATH=$1 ; shift ;; --ctl-config) CONFIG=$1 ; shift ;; - --logs) LOGS_DIR=$1 ; shift ;; - --spool) EJABBERD_DB=$1 ; shift ;; + --logs) LOGDIR=$1 ; shift ;; + --spool) SPOOLDIR=$1 ; shift ;; *) ARGS="$ARGS $PARAM" ;; esac done @@ -65,23 +65,29 @@ fi ERLANG_OPTS="+K $POLL -smp $SMP +P $ERL_PROCESSES $KERNEL_OPTS" # define additional environment variables -EJABBERD_EBIN=$ROOTDIR/var/lib/ejabberd/ebin -EJABBERD_MSGS_PATH=$ROOTDIR/var/lib/ejabberd/priv/msgs -EJABBERD_SO_PATH=$ROOTDIR/var/lib/ejabberd/priv/lib -EJABBERD_BIN_PATH=$ROOTDIR/var/lib/ejabberd/priv/bin -EJABBERD_LOG_PATH=$LOGS_DIR/ejabberd.log -SASL_LOG_PATH=$LOGS_DIR/sasl.log +EJABBERDDIR=@LIBDIR@/ejabberd +BEAMDIR=$EJABBERDDIR/ebin +PRIVDIR=$EJABBERDDIR/priv +PBINDIR=$PRIVDIR/bin +SODIR=$PRIVDIR/lib +MSGSDIR=$PRIVDIR/msgs + +EJABBERD_LOG_PATH=$LOGDIR/ejabberd.log +SASL_LOG_PATH=$LOGDIR/sasl.log DATETIME=`date "+%Y%m%d-%H%M%S"` -ERL_CRASH_DUMP=$LOGS_DIR/erl_crash_$DATETIME.dump -ERL_INETRC=$ROOTDIR/etc/ejabberd/inetrc -HOME=$ROOTDIR/var/lib/ejabberd +ERL_CRASH_DUMP=$LOGDIR/erl_crash_$DATETIME.dump +ERL_INETRC=$ETCDIR/inetrc +HOME=$SPOOLDIR + +# create the home dir with the proper user if doesn't exist, because it stores cookie file +[ -d $HOME ] || $EXEC_CMD "mkdir -p $HOME" # export global variables export EJABBERD_CONFIG_PATH -export EJABBERD_MSGS_PATH +export MSGSDIR export EJABBERD_LOG_PATH -export EJABBERD_SO_PATH -export EJABBERD_BIN_PATH +export SODIR +export PBINDIR export ERL_CRASH_DUMP export ERL_INETRC export ERL_MAX_PORTS @@ -99,8 +105,8 @@ start () $EXEC_CMD "$ERL \ $NAME $ERLANG_NODE \ -noinput -detached \ - -pa $EJABBERD_EBIN \ - -mnesia dir \"\\\"$EJABBERD_DB\\\"\" \ + -pa $BEAMDIR \ + -mnesia dir \"\\\"$SPOOLDIR\\\"\" \ -s ejabberd \ -sasl sasl_error_logger \\{file,\\\"$SASL_LOG_PATH\\\"\\} \ $ERLANG_OPTS $ARGS \"$@\"" @@ -151,8 +157,8 @@ live () echo "" $EXEC_CMD "$ERL \ $NAME $ERLANG_NODE \ - -pa $EJABBERD_EBIN \ - -mnesia dir \"\\\"$EJABBERD_DB\\\"\" \ + -pa $BEAMDIR \ + -mnesia dir \"\\\"$SPOOLDIR\\\"\" \ -s ejabberd \ $ERLANG_OPTS $ARGS \"$@\"" } @@ -163,7 +169,7 @@ ctl () $EXEC_CMD "$ERL \ $NAME ejabberdctl \ -noinput \ - -pa $EJABBERD_EBIN \ + -pa $BEAMDIR \ -s ejabberd_ctl -extra $ERLANG_NODE $@" result=$? case $result in @@ -178,8 +184,8 @@ ctl () echo "Optional parameters when starting an ejabberd node:" echo " --config file Config file of ejabberd: $EJABBERD_CONFIG_PATH" echo " --ctl-config file Config file of ejabberdctl: $CONFIG" - echo " --logs dir Directory for logs: $LOGS_DIR" - echo " --spool dir Database spool dir: $EJABBERD_DB" + echo " --logs dir Directory for logs: $LOGDIR" + echo " --spool dir Database spool dir: $SPOOLDIR" echo " --node nodename ejabberd node name: $ERLANG_NODE" echo "";; esac diff --git a/src/eldap/Makefile.in b/src/eldap/Makefile.in index 1c9b7ca22..4c9c33c22 100644 --- a/src/eldap/Makefile.in +++ b/src/eldap/Makefile.in @@ -9,7 +9,8 @@ LIBS = @LIBS@ ERLANG_CFLAGS = @ERLANG_CFLAGS@ ERLANG_LIBS = @ERLANG_LIBS@ -EFLAGS = -I .. -pz .. +EFLAGS += -I ../../include +EFLAGS += -pz .. # make debug=true to compile Erlang module with debug informations. ifdef debug EFLAGS+=+debug_info diff --git a/src/mod_irc/Makefile.in b/src/mod_irc/Makefile.in index 5000721a6..86212e45c 100644 --- a/src/mod_irc/Makefile.in +++ b/src/mod_irc/Makefile.in @@ -16,7 +16,9 @@ else DYNAMIC_LIB_CFLAGS = -fpic -shared endif -EFLAGS = -I .. -pz .. +EFLAGS += -I ../../include +EFLAGS += -pz .. + # make debug=true to compile Erlang module with debug informations. ifdef debug EFLAGS+=+debug_info diff --git a/src/mod_muc/Makefile.in b/src/mod_muc/Makefile.in index 8aa3bf5e1..80725d33d 100644 --- a/src/mod_muc/Makefile.in +++ b/src/mod_muc/Makefile.in @@ -9,7 +9,9 @@ LIBS = @LIBS@ ERLANG_CFLAGS = @ERLANG_CFLAGS@ ERLANG_LIBS = @ERLANG_LIBS@ -EFLAGS = -I .. -pz .. +EFLAGS += -I ../../include +EFLAGS += -pz .. + # make debug=true to compile Erlang module with debug informations. ifdef debug EFLAGS+=+debug_info diff --git a/src/mod_offline.erl b/src/mod_offline.erl index 3a751c328..3db29844b 100644 --- a/src/mod_offline.erl +++ b/src/mod_offline.erl @@ -43,8 +43,8 @@ -include("ejabberd.hrl"). -include("jlib.hrl"). --include("web/ejabberd_http.hrl"). --include("web/ejabberd_web_admin.hrl"). +-include("ejabberd_http.hrl"). +-include("ejabberd_web_admin.hrl"). -record(offline_msg, {us, timestamp, expire, from, to, packet}). diff --git a/src/mod_offline_odbc.erl b/src/mod_offline_odbc.erl index c3d0513d0..79d7c51ae 100644 --- a/src/mod_offline_odbc.erl +++ b/src/mod_offline_odbc.erl @@ -42,8 +42,8 @@ -include("ejabberd.hrl"). -include("jlib.hrl"). --include("web/ejabberd_http.hrl"). --include("web/ejabberd_web_admin.hrl"). +-include("ejabberd_http.hrl"). +-include("ejabberd_web_admin.hrl"). -record(offline_msg, {user, timestamp, expire, from, to, packet}). diff --git a/src/mod_proxy65/Makefile.in b/src/mod_proxy65/Makefile.in index b9eba4267..62ae77c9f 100644 --- a/src/mod_proxy65/Makefile.in +++ b/src/mod_proxy65/Makefile.in @@ -9,7 +9,9 @@ LIBS = @LIBS@ ERLANG_CFLAGS = @ERLANG_CFLAGS@ ERLANG_LIBS = @ERLANG_LIBS@ -EFLAGS = -I .. -pz .. +EFLAGS += -I ../../include +EFLAGS += -pz .. + # make debug=true to compile Erlang module with debug informations. ifdef debug EFLAGS+=+debug_info diff --git a/src/mod_proxy65/mod_proxy65_service.erl b/src/mod_proxy65/mod_proxy65_service.erl index 41c3af7d5..4ee3ec61a 100644 --- a/src/mod_proxy65/mod_proxy65_service.erl +++ b/src/mod_proxy65/mod_proxy65_service.erl @@ -41,8 +41,8 @@ %% API. -export([start_link/2]). --include("../ejabberd.hrl"). --include("../jlib.hrl"). +-include("ejabberd.hrl"). +-include("jlib.hrl"). -define(PROCNAME, ejabberd_mod_proxy65_service). diff --git a/src/mod_proxy65/mod_proxy65_stream.erl b/src/mod_proxy65/mod_proxy65_stream.erl index ccc060afe..046ac8e71 100644 --- a/src/mod_proxy65/mod_proxy65_stream.erl +++ b/src/mod_proxy65/mod_proxy65_stream.erl @@ -58,7 +58,7 @@ ]). -include("mod_proxy65.hrl"). --include("../ejabberd.hrl"). +-include("ejabberd.hrl"). -define(WAIT_TIMEOUT, 60000). %% 1 minute (is it enough?) diff --git a/src/mod_pubsub/Makefile.in b/src/mod_pubsub/Makefile.in index 39f6a16e8..25dbf57a5 100644 --- a/src/mod_pubsub/Makefile.in +++ b/src/mod_pubsub/Makefile.in @@ -9,7 +9,9 @@ LIBS = @LIBS@ ERLANG_CFLAGS = @ERLANG_CFLAGS@ ERLANG_LIBS = @ERLANG_LIBS@ -EFLAGS = -I .. -pz .. +EFLAGS += -I ../../include +EFLAGS += -pz .. + # make debug=true to compile Erlang module with debug informations. ifdef debug EFLAGS+=+debug_info diff --git a/src/mod_roster.erl b/src/mod_roster.erl index 038de586a..c1569bb61 100644 --- a/src/mod_roster.erl +++ b/src/mod_roster.erl @@ -47,8 +47,8 @@ -include("ejabberd.hrl"). -include("jlib.hrl"). -include("mod_roster.hrl"). --include("web/ejabberd_http.hrl"). --include("web/ejabberd_web_admin.hrl"). +-include("ejabberd_http.hrl"). +-include("ejabberd_web_admin.hrl"). start(Host, Opts) -> diff --git a/src/mod_roster_odbc.erl b/src/mod_roster_odbc.erl index d38121560..dfb76dcbe 100644 --- a/src/mod_roster_odbc.erl +++ b/src/mod_roster_odbc.erl @@ -46,8 +46,8 @@ -include("ejabberd.hrl"). -include("jlib.hrl"). -include("mod_roster.hrl"). --include("web/ejabberd_http.hrl"). --include("web/ejabberd_web_admin.hrl"). +-include("ejabberd_http.hrl"). +-include("ejabberd_web_admin.hrl"). start(Host, Opts) -> diff --git a/src/mod_shared_roster.erl b/src/mod_shared_roster.erl index ff378010d..f363bd22e 100644 --- a/src/mod_shared_roster.erl +++ b/src/mod_shared_roster.erl @@ -52,8 +52,8 @@ -include("ejabberd.hrl"). -include("jlib.hrl"). -include("mod_roster.hrl"). --include("web/ejabberd_http.hrl"). --include("web/ejabberd_web_admin.hrl"). +-include("ejabberd_http.hrl"). +-include("ejabberd_web_admin.hrl"). -record(sr_group, {group_host, opts}). -record(sr_user, {us, group_host}). diff --git a/src/mod_vcard_ldap.erl b/src/mod_vcard_ldap.erl index 2b5e7faac..2225f7c86 100644 --- a/src/mod_vcard_ldap.erl +++ b/src/mod_vcard_ldap.erl @@ -50,7 +50,7 @@ ]). -include("ejabberd.hrl"). --include("eldap/eldap.hrl"). +-include("eldap.hrl"). -include("jlib.hrl"). -define(PROCNAME, ejabberd_mod_vcard_ldap). diff --git a/src/odbc/Makefile.in b/src/odbc/Makefile.in index 974517c5b..5bd130b6e 100644 --- a/src/odbc/Makefile.in +++ b/src/odbc/Makefile.in @@ -9,7 +9,9 @@ LIBS = @LIBS@ ERLANG_CFLAGS = @ERLANG_CFLAGS@ ERLANG_LIBS = @ERLANG_LIBS@ -EFLAGS = -I .. -pz .. +EFLAGS += -I ../../include +EFLAGS += -pz .. + # make debug=true to compile Erlang module with debug informations. ifdef debug EFLAGS+=+debug_info diff --git a/src/pam/Makefile.in b/src/pam/Makefile.in index d86b119b9..57c1ab78a 100644 --- a/src/pam/Makefile.in +++ b/src/pam/Makefile.in @@ -9,7 +9,9 @@ LIBS = @LIBS@ @PAM_LIBS@ ERLANG_CFLAGS = @ERLANG_CFLAGS@ ERLANG_LIBS = @ERLANG_LIBS@ -EFLAGS = -I .. -pz .. +EFLAGS += -I ../../include +EFLAGS += -pz .. + # make debug=true to compile Erlang module with debug informations. ifdef debug EFLAGS+=+debug_info diff --git a/src/tls/Makefile.in b/src/tls/Makefile.in index dfb8c87d0..db4a874e1 100644 --- a/src/tls/Makefile.in +++ b/src/tls/Makefile.in @@ -19,7 +19,9 @@ else DYNAMIC_LIB_CFLAGS = -fpic -shared endif -EFLAGS = -I .. -pz .. +EFLAGS += -I ../../include +EFLAGS += -pz .. + # make debug=true to compile Erlang module with debug informations. ifdef debug EFLAGS+=+debug_info diff --git a/src/web/Makefile.in b/src/web/Makefile.in index 7c4732da8..3a75f7e17 100644 --- a/src/web/Makefile.in +++ b/src/web/Makefile.in @@ -9,7 +9,9 @@ LIBS = @LIBS@ ERLANG_CFLAGS = @ERLANG_CFLAGS@ ERLANG_LIBS = @ERLANG_LIBS@ -EFLAGS = -I .. -pz .. +EFLAGS += -I ../../include +EFLAGS += -pz .. + # make debug=true to compile Erlang module with debug informations. ifdef debug EFLAGS+=+debug_info @@ -21,7 +23,7 @@ BEAMS = $(addprefix $(OUTDIR)/,$(SOURCES:.erl=.beam)) all: $(BEAMS) -$(OUTDIR)/%.beam: %.erl ejabberd_http.hrl +$(OUTDIR)/%.beam: %.erl @ERLC@ -W $(EFLAGS) -o $(OUTDIR) $< clean: