# HG changeset patch # User Matthew Wild # Date 1228018963 0 # Node ID 21dc299387a614574012c89bcdc27048c128b4fb # Parent ea61e191043eabab7db92219291ba05c0903e1a8 Installation improvements (auto-creation of data directories) diff -r ea61e191043e -r 21dc299387a6 Makefile --- a/Makefile Sun Nov 30 01:16:55 2008 +0000 +++ b/Makefile Sun Nov 30 04:22:43 2008 +0000 @@ -6,16 +6,18 @@ MODULES = $(DESTDIR)$(PREFIX)/lib/prosody/modules SOURCE = $(DESTDIR)$(PREFIX)/lib/prosody +DATADIR?=data + INSTALLEDSOURCE = $(PREFIX)/lib/prosody INSTALLEDCONFIG = $(SYSCONFDIR) INSTALLEDMODULES = $(PREFIX)/lib/prosody/modules - +INSTALLEDDATA = $(DATADIR) -all: +all: prosody.install prosody.cfg.lua.install $(MAKE) all -C util-src install: prosody.install prosody.cfg.lua.install util/encodings.so util/encodings.so - install -d $(BIN) $(CONFIG) $(MODULES) $(SOURCE) + install -d $(BIN) $(CONFIG) $(MODULES) $(SOURCE) $(DATADIR) install -d $(CONFIG)/certs install -d $(SOURCE)/core $(SOURCE)/net $(SOURCE)/util install ./prosody.install $(BIN)/prosody @@ -40,7 +42,12 @@ $(MAKE) install -C util-src prosody.install: prosody - sed "s|^CFG_SOURCEDIR=.*;$$|CFG_SOURCEDIR='$(INSTALLEDSOURCE)';|;s|^CFG_CONFIGDIR=.*;$$|CFG_CONFIGDIR='$(INSTALLEDCONFIG)';|;s|^CFG_PLUGINDIR=.*;$$|CFG_PLUGINDIR='$(INSTALLEDMODULES)/';|;" prosody > prosody.install + cp prosody prosody.install + sed -i "s|^CFG_SOURCEDIR=.*;$$|CFG_SOURCEDIR='$(INSTALLEDSOURCE)';|;" prosody.install + sed -i "s|^CFG_CONFIGDIR=.*;$$|CFG_CONFIGDIR='$(INSTALLEDCONFIG)';|;" prosody.install + sed -i "s|^CFG_DATADIR=.*;$$|CFG_DATADIR='$(INSTALLEDDATA)';|;" prosody.install + # The trailing slash is intentional in this one + sed -i "s|^CFG_PLUGINDIR=.*;$$|CFG_PLUGINDIR='$(INSTALLEDMODULES)/';|;" prosody.install prosody.cfg.lua.install: sed 's|certs/|$(INSTALLEDCONFIG)/certs/|' prosody.cfg.lua.dist > prosody.cfg.lua.install diff -r ea61e191043e -r 21dc299387a6 configure --- a/configure Sun Nov 30 01:16:55 2008 +0000 +++ b/configure Sun Nov 30 04:22:43 2008 +0000 @@ -4,13 +4,14 @@ PREFIX=/usr/local SYSCONFDIR="$PREFIX/etc/prosody" +DATADIR="$PREFIX/var/lib/prosody" LUA_SUFFIX="" LUA_DIR="/usr" LUA_BINDIR="/usr/bin" LUA_INCDIR="/usr/include" LUA_LIBDIR="/usr/lib" IDN_LIB=idn -OPENSSL_LIB=ssl +OPENSSL_LIB=crypto # Help @@ -23,6 +24,8 @@ Default is $PREFIX --sysconfdir=DIR Location where the config file should be installed. Default is \$PREFIX/etc/prosody +--datadir=DIR Location where the server data should be stored. + Default is \$PREFIX/var/lib/prosody --lua-suffix=SUFFIX Versioning suffix to use in Lua filenames. Default is "$LUA_SUFFIX" (lua$LUA_SUFFIX...) --with-lua=PREFIX Use Lua from given prefix. @@ -60,6 +63,10 @@ PREFIX="$value" PREFIX_SET=yes ;; + --data-dir=*) + DATADIR="$value" + DATADIR_SET=yes + ;; --require-config) REQUIRE_CONFIG=yes ;; @@ -100,6 +107,14 @@ fi fi +if [ "$PREFIX_SET" = "yes" -a ! "$DATADIR_SET" = "yes" ] +then + if [ "$PREFIX" = "/usr" ] + then DATADIR=/var/lib/prosody + else DATADIR=$PREFIX/var/lib/prosody + fi +fi + find_program() { path="$PATH" item="`echo "$path" | sed 's/\([^:]*\):.*/\1/'`" @@ -221,6 +236,7 @@ PREFIX=$PREFIX SYSCONFDIR=$SYSCONFDIR +DATADIR=$DATADIR LUA_SUFFIX=$LUA_SUFFIX LUA_DIR=$LUA_DIR LUA_INCDIR=$LUA_INCDIR diff -r ea61e191043e -r 21dc299387a6 prosody --- a/prosody Sun Nov 30 01:16:55 2008 +0000 +++ b/prosody Sun Nov 30 04:22:43 2008 +0000 @@ -5,28 +5,20 @@ CFG_SOURCEDIR=nil; CFG_CONFIGDIR=nil; CFG_PLUGINDIR=nil; +CFG_DATADIR=nil; -- -- -- -- -- -- if CFG_SOURCEDIR then - if os.getenv("HOME") then - CFG_SOURCEDIR = CFG_SOURCEDIR:gsub("^~", os.getenv("HOME")); - end package.path = CFG_SOURCEDIR.."/?.lua;"..package.path package.cpath = CFG_SOURCEDIR.."/?.so;"..package.cpath end -if CFG_CONFIGDIR then +if CFG_DATADIR then if os.getenv("HOME") then - CFG_CONFIGDIR = CFG_CONFIGDIR:gsub("^~", os.getenv("HOME")); + CFG_DATADIR = CFG_DATADIR:gsub("^~", os.getenv("HOME")); end -end - -if CFG_PLUGINDIR then - if os.getenv("HOME") then - CFG_PLUGINDIR = CFG_PLUGINDIR:gsub("^~", os.getenv("HOME")); - end -end +end -- Required to be able to find packages installed with luarocks pcall(require, "luarocks.require") @@ -56,7 +48,7 @@ end end -local data_path = config.get("*", "core", "data_path") or "data"; +local data_path = config.get("*", "core", "data_path") or CFG_DATADIR or "data"; local path_separator = "/"; if os.getenv("WINDIR") then path_separator = "\\" end local _mkdir = {} function mkdir(path)