Port miau to -ng
authorFlorian Fainelli <florian@openwrt.org>
Sat, 5 Aug 2006 02:44:34 +0000 (02:44 +0000)
committerFlorian Fainelli <florian@openwrt.org>
Sat, 5 Aug 2006 02:44:34 +0000 (02:44 +0000)
SVN-Revision: 4463

net/miau/Makefile [new file with mode: 0644]
net/miau/files/S50miau [new file with mode: 0755]
net/miau/files/miau [new file with mode: 0644]
net/miau/files/miaurc [new file with mode: 0644]

diff --git a/net/miau/Makefile b/net/miau/Makefile
new file mode 100644 (file)
index 0000000..b14efc1
--- /dev/null
@@ -0,0 +1,66 @@
+#
+# Copyright (C) 2006 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+# $Id$
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=miau
+PKG_VERSION:=0.6.0.2
+PKG_RELEASE:=1
+PKG_MD5SUM:=1b78d219a03655399c165eeb021cddd8
+
+PKG_SOURCE_URL:= @SF/miau
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_CAT:=zcat
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/miau
+  SECTION:=net
+  CATEGORY:=Network
+  TITLE:=Another IRC-bouncer/proxy
+  DESCRIPTION:=In short, miau is an IRC-bouncer/proxy.\\\
+Being more verbose, miau is small but quite featured\\\
+IRC-bouncer - a service bit like HTTP-proxy, but\\\
+for IRC-networks.\\\
+  URL:=http://sourceforge.net/projects/miau/
+endef
+
+define Build/Configure
+$(call Build/Configure/Default,--enable-automode \
+--enable-releasenick \
+--enable-uptime \
+--enable-privlog \
+--enable-onconnect,ac_cv_func_malloc_0_nonnull=yes \
+ac_cv_func_realloc_0_nonnull=yes)
+endef
+
+
+define Build/Compile   
+       rm -rf $(PKG_INSTALL_DIR)
+       mkdir -p $(PKG_INSTALL_DIR)
+       $(MAKE) -C $(PKG_BUILD_DIR) \
+               CC=$(TARGET_CC) \
+               DESTDIR="$(PKG_INSTALL_DIR)" \
+               install
+endef
+
+define Package/miau/install    
+       install -d -m0755 $(1)/usr/bin          
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/$(PKG_NAME) $(1)/usr/bin/
+       install -d -m0755 $(1)/etc/init.d
+       install -d -m0755 $(1)/etc/default
+       install -d -m0755 $(1)/etc/miau
+       install -m0755 ./files/S50miau $(1)/etc/init.d/S50miau
+       install -m0644 ./files/miau $(1)/etc/default/miau
+       install -m0644 ./files/miaurc $(1)/etc/miau/miaurc
+endef
+
+$(eval $(call BuildPackage,miau))
diff --git a/net/miau/files/S50miau b/net/miau/files/S50miau
new file mode 100755 (executable)
index 0000000..beef310
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+DEFAULT="/etc/default/miau"
+OPTIONS="-d /etc/miau/"
+LOG_DIR="/var/log/miau"
+ERR_LOG="$LOG_DIR/error.log"
+OUT_LOG="$LOG_DIR/miau.log"
+
+[ -f $DEFAULT ] && . $DEFAULT
+[ "$ENABLE_MIAU" = "yes" ] || exit 0
+
+case $1 in
+ start)
+  [ -f /var/run/miau.pid ] && echo "[ERROR] miau is running"
+  [ -f /var/run/miau.pid ] && exit 0
+  [ -d /var/run ] || mkdir -p /var/run
+  [ -d $LOG_DIR ] || mkdir -p $LOG_DIR 
+  /usr/bin/miau -f $OPTIONS > $OUT_LOG 2> $ERR_LOG &
+  PID=$!
+  sleep 1 
+  [ -d /proc/$PID ] && echo $PID > /var/run/miau.pid 
+  [ -d /proc/$PID ] || echo "[ERROR] Unable to run miau as a daemon"
+  ;;
+ stop)
+  [ -f /var/run/miau.pid ] && kill $(cat /var/run/miau.pid) >/dev/null 2>&1 && rm /var/run/miau.pid
+  ;;
+ *)
+ echo "usage: $0 (start|stop)"
+ exit 1
+esac
+
+exit $? 
diff --git a/net/miau/files/miau b/net/miau/files/miau
new file mode 100644 (file)
index 0000000..7d4f869
--- /dev/null
@@ -0,0 +1,2 @@
+ENABLE_MIAU="yes"
+OPTIONS="-d /etc/miau"
diff --git a/net/miau/files/miaurc b/net/miau/files/miaurc
new file mode 100644 (file)
index 0000000..c12e4ff
--- /dev/null
@@ -0,0 +1,587 @@
+#
+# miau 0.5.3 configuration file example
+#      (C) 2003-2004 Tommi Saviranta <tsaviran@cs.helsinki.fi>
+#
+
+# About structure of this configuration file:
+#
+# - All parameters are written inside quotes (for example, "foobar")
+#
+# - Options are defined like: option = "parameter1"[:"parameter2"] ...
+#
+# - When entering multiparameter options, certain parameters have default
+#   values and can be left out.
+#
+# - When entering multiparameter options and, for example, user doesn't want
+#   to set parameter2 at all but he needs to set parameter3, parameter2 can
+#   be skipped with column (':') like: "parameter1"::"parameter3".
+#
+# - Empty lines and characters after '#' (hash) are ignored.
+#
+# - When setting permissions, switched etc. (switches (booleans) are described
+#   as "state"), everything beginning with "t", "r" and "1" are concidered as
+#   "true" or "yes" (positive). Everything else is "false" or "no" (negative).
+
+
+
+# Required settings
+################################################################################
+
+
+# nicknames = { "nick" }: Your nickname (and secondary nicknames) on IRC.
+#              If the primary nick (first nick on the list) is already on use,
+#              miau will try the others on the list.
+#
+# Default: no default
+#
+# Example:
+#nicknames = {
+#      "zak"
+#      "zakh"
+#}
+
+
+# realname = "realname": Your "real" name on IRC.
+#
+# Default: no default
+#
+# Example:
+#realname = "Prokhor Zakharov"
+
+
+# username = "username": Your ident (matters only if you don't have identd
+#              running).
+#
+# Default: no default
+#
+# Example:
+#username = "zak"
+
+
+# password = "password": The password miau will expect to receive from client
+#              when it's registering with nick. If this is 13 characters long,
+#              miau assumed it's crypted.
+#
+# If miau is compiled with ENABLE_MKPASSWD, miau can generate password-hashes
+# (from command line) with -c -switch.
+#
+# Default: no default
+#
+# Example:
+#password = "foobar"
+
+
+# listenport = "port": The port miau will wait for incoming connections.
+#
+# Default: no default
+#
+# Example:
+#listenport = "4096"
+
+
+# servers = { "server":"port":"password":"timeout" }: miau's IRC-server-list.
+#              Each line represents one server, where timeout is delay in
+#              seconds before connectiong attempt times out. Only "server"
+#              parameter is required.
+#
+# Default: no default
+#
+# Example:
+#servers = {
+#      "irc.net"
+#      "irc.foo.bar":"6662"
+#      "localhost"::"foobar"
+#      "127.0.0.1":"6670"::"5"
+#}
+
+
+# connhosts = { "host":"permitted" }: List of hosts that are allowed (or denied)
+#              to connect to miau. When boolean-value is left unset, it is
+#              assumed to be "true". This list will be processed as a chain
+#              which means latter rules can override previous ones.
+#
+# Default: no default
+#
+# Example:
+#connhosts = {
+#      "*":"yes"
+#      "client*.evil.net":"no"
+#}
+
+
+
+# Optional settings
+################################################################################
+
+
+# listenhost = "host": Host miau uses to listen on.
+#
+# If you are compiled with IPV6 and need this to listen on an IPV4 port, you
+# must use an IP in the form ::FFFF:127.0.0.1
+#
+# Default: no default
+#
+# Example:
+#listenhost = "127.0.0.1"
+
+
+# bind = "host": Host/IP miau uses for outgoing connections.
+#
+# Default: none
+#
+# Example:
+#bind = "172.16.1.1"
+
+
+# maxclients = "number": Maximum number of clients connected to miau
+#              concurrently. Set to zero for unlimited clients.
+#
+# Default: 3
+#
+#Example:
+#maxclients = "1"
+
+
+# stonedtimeout = "seconds": Time (in seconds) with no data from the server
+#              before it is declared stoned and being disconnected. Although
+#              minimum value is 30, this value has no upper limit. Watch out,
+#              though, if this value is set too high, death of servers may stay
+#              undetected for a very long time if you are idle.
+#
+# Default: 90
+#
+# Example:
+#stonedtimeout = "150"
+
+
+# connecttimeout = "seconds": Time (in seconds) before connection attampt will
+#              time out. Note that while connecting to the server miau will not
+#              respond to clients. Minimum value is 5, and many systems define
+#              maximum value.
+#
+# Default: 30
+#
+# Example:
+#connecttimeout = "60"
+
+
+# channels = { "channel":"keyword" }: List of channels to join.
+#
+# Default: none
+#
+# Example:
+#channels = {
+#      "#foobar"
+#      "#miau":"cats"
+#}
+
+
+# rejoin = "state": Rejoin channels after disconnecting from the server.
+#              If rejoin is set to true, channels defined in "channels" are
+#              also joined when client first time connects to miau.
+#
+# Default: true
+#
+# Example:
+#rejoin = "false"
+
+
+# leave = "state": Leave channels when all clients have detached from miau.
+#              If "leave" is set to "false" and "rejoin" is set to "true",
+#              channels defined at "channels" will be joined at miau startup.
+#              If both "leave" and "rejoin" is set to "true", channels that
+#              are left at client detach, are rejoined when client attached
+#              back to miau.
+#
+# Default: false
+#
+# Example:
+#leave = "false"
+
+
+# leavemsg = "message": Message miau will either use as PART-message or as an
+#              ACTION when all clients have detached from miau. If unset or
+#              set to empty, no message will be shown. Note that many people
+#              dislike event-based messages (which happens when "leave" is set
+#              to "false" and "leavemsg" is set). Also see usequitmsg.
+#
+# Note: Note that commenting this option out and rehashing after leavemsg was
+#      set, this option is _not_ reverted. To disable leavemsg afterwards you
+#      need to write an empty string here and rehash.
+#
+# Default: none
+#
+# Example:
+#leavemsg = "doh"
+
+
+# awaymsg = "message": Text that will be set to miau's away-reason when all
+#              clients have detached from miau. If unset or set to empty,
+#              AWAY-status will be left untouched. When any client attaches
+#              back to miau, AWAY-status will be reset. Also see usequitmsg.
+#
+# Note: If user sets him/herself away, miau will not touch away-status nor
+#      message neither when connecting to or disconnecting from miau.
+#
+# Note: Note that commenting this option out and rehashing after awaymsg was
+#      set, this option is _not_ reverted. To disable awaymsg afterwards you
+#      need to write an empty string here and rehash.
+#
+# Default: none
+#
+# Example:
+#awaymsg = "bouncing around - all private messages will be logged"
+
+
+# usequitmsg = "state": Use last quit-reason as away-reason and/or leave-message
+#              (if respective options are enabled) when all clients have
+#              disconnected from miau. If quit-reason is empty, default values
+#              of awaymsg and leavemsg will be used, otherwise most recent
+#              quit-message overrides values in miaurc.
+#
+# Default: true
+#
+# Example:
+# usequitmsg = "false"
+
+
+# getnick = "selection": miau can try to reclaim your primary nick when it is
+#              lost. This option may be one of the following: "never",
+#              "detached", "attached", or "always".
+#                      "never" ....... miau will not try to get your nick back.
+#                      "detached" .... miau will try to get your nick when no
+#                                      clients are attached.
+#                      "attached" .... miau will try to get your nick when
+#                                      there are one or more clients attached.
+#                      "always" ...... miau will try to get your nick 
+#
+# Note: Do _not_ use options "attached" and "always" with clients (like
+#      irc-II EPIC) that automatically change your nick when they receive
+#      NICKINUSE from the server - you might end up chaning your nick until
+#      server drops your connection due excess flood.
+#
+# Default: detached
+#
+# Example:
+#getnick = "always"
+
+
+# getnickinterval = "seconds": Time between tries (in seconds) to obtain
+#              currently (possibly) lost primary nick. Don't set it too low
+#              or you might get kicked out the server due to excess flood.
+#
+# Default: 60
+#
+# Example:
+#getnickinterval = "30"
+
+
+# antiidle = "minutes": Time between idle-timer resets in minutes. Set to 0 to
+#              disable.
+#
+# Default: 0
+#
+# Example:
+#antiidle = "300"
+
+
+# qloglength = "minutes": Age of oldest line in quicklog in minutes. Set to zero
+#              to disable quicklog.
+#
+# This option might not be compiled in.
+#
+# Default: 30
+#
+# Example:
+#qloglength = "30"
+
+
+# timestamp = "option": Location of timestamp in quicklog events. This option
+#              may be one of the following "beginning", "end", or "none".
+#
+# This option might not be compiled in.
+#
+# Default: none
+#
+# Example:
+#timestamp = "beginning"
+
+
+# flushqlog = "state": If set to true, quicklog will be written only when no
+#              clients are connected and quicklog will be erased when client
+#              connects to miau. If you are running a single client, you
+#              probably want to leave this to "false.
+#
+# This option might not be compiled in.
+#
+# Default: true
+#
+# Example:
+#flushqlog = "true"
+
+
+# inbox = "state": Enables logging private messages when no clients are
+#              connected to miau.
+#
+# This option might not be compiled in.
+#
+# Default: true
+#
+# Example:
+#inbox = "true"
+
+
+# nevergiveup = "state": If set to true, miau will reset "working"-status of
+#              servers to working when all are set to dysfunctional.
+#              Respectively, if set to false, miau will quit when all servers
+#              on the list have been set to dysfunctional.
+#
+# Default: true
+#
+# Example:
+#nevergiveup = "false"
+
+
+# norestricted = "state": If set to true, miau will not stay on server that
+#              forces user to have restricted-status (+r).
+#
+# Default: true
+#
+# Example:
+#norestricted = "false"
+
+
+# reconnectdelay = "seconds": Time (in seconds) between connection attempts.
+#              Minumun value is set to 1.
+#
+# Default: 10
+#
+# Example:
+#reconnectdelay = "30"
+
+
+# nickfillchar = "fill character": Character used to modify your primary nick
+#              when all defined nicks are already occupied. Note character is
+#              a single octet (byte) and if longer string is fed, only the
+#              first character is used.
+#
+# Example: When nickfillchar is set to '_', primary nick is "zak" and all
+#      defined nicks are occupied, next nicks tried are "zak_", "zak__",
+#      "zak___" and so on. When nick has grown too long, it will be shifted
+#      one characted to right (where shift is cyclic) - this means
+#      "zak______" will become "_zak_____", which, again, will become
+#      "__zak____".
+#
+# Default: _
+#
+# Example:
+#nickfillchar = "^"
+
+
+# maxnicklen = "length": Maximum nick length, used with nickfillchar.
+#
+# Default: 9
+#
+# Example:
+#maxnicklen = 11
+
+
+# usermode = "usermode(s)": Usermode that miau will request (if no clients are
+#              attached at the moment) from the server when connection to the
+#              server is established. Leave unset or set to empty to disable
+#              this feature.
+#
+# Default: none
+#
+# Example:
+#usermode = "+i"
+
+
+# forwardmsg = "command": miau can collect the (private) messages within three
+#              (3) minutes and pipe them into the program specified. Leave this
+#              unset or set to empty to disable this feature.
+#
+# Default: none
+#
+# Example:
+#forwardmsg = "mail user@host"
+
+
+# ignore = { "mask":"ignored" }: List of users whose private messages (PRIVMSG)
+#              and noticies (NOTICE) are ignored when no clients are attached
+#              to miau. When "ignored" is left undefined, it is assumed to be
+#              "true". Setting "ignored" to "false" means that this user will
+#              _not_ be ignored. This list is processed as a chain.
+#
+# Default: none
+#
+# Example:
+#ignore = {
+#      "*@localhost":"yes"
+#      "zak*":"no"
+#}
+
+
+# privlog = "mode": Whatever private messages should be logged in nick-specific
+#              files. Can be one of "never", "detached", "attached", and
+#              "always".
+#
+# This option might not be compiled in.
+#
+# Default: never
+#
+# Example:
+#privlog = "always"
+
+
+# chanlog = { "channel(s)":"options":"logfile" }: List of channel logfiles.
+#
+# When channel is set to "*", line represents global log. When logging,
+# if channel doesn't have entry of it's own in this list, it will use settings
+# of global log and write log to it's own file. When defining global log,
+# "logfile" is ignored. Each line can have multiple channels
+# (like "#foobar,#miau").
+#
+# If logfile is left undefined, logfile will be named after the channel with
+# possible postfix (see logpostfix). All lofiles are written in miau's work
+# directory.
+#
+# Options consist of abritary set of following possibilities:
+#      j: log joins
+#      e: log parts (exits)
+#      q: log quits
+#      m: log messages (privmsg/notice)
+#      c: log mode changes (changes)
+#      n: log nick changes
+#      o: log misc events (other)
+#      b: log messages from miau (bouncer)
+#      a: log all of above
+#      A: log when a client is attached
+#      D: log when a client is detached
+#      C: log continuously (status of clients doesn't matter)
+#
+# This option might not be compiled in.
+#
+# Default: none
+#
+# Example:
+#chanlog = {
+#      "#foobar":"a"           # log everything on #foobar
+#      "#miau":"aD":"foo.log"  # log everything to file "foo.log" when
+#                                all clients are detached
+#      "*":"mjeq"              # log only messages, joins, parts and quits
+#                                by default
+#}
+
+
+# logpostfix = "postfix": When writing log to undefined logfile, each logfile
+#              consists of channel name followed by postfix. Postfix can be
+#              defined here.
+#
+# This option might not be compiled in.
+#
+# Default: no postfix
+#
+# Example:
+#logpostfix = ".log"
+
+
+# onconnect = { "mode":"target/data"(:"data") }: When miau connects and
+#              registers user to server, miau can send pre-defined messages.
+#              User can define miau to send normal messages (PRIVMSG), notices
+#              (NOTICE) or arbitrary messages.
+#
+# Mode can be one of the following:
+#      p: private message (PRIVMSG).
+#      n: notice (NOTICE). Should be used with services and automatons, but
+#         unfortunately some network services can't cope with notices.
+#      r: "raw" message. This means user must provide complete message to send
+#         to the server. Using raw message user has complete control over what
+#         is being sent. If you don't know what this is, you don't need this.
+# When using modes "p" or "n", user must provide both message and target where
+# as with raw messages only one parameter in addition to type should be given.
+#
+# This option might not be compiled in.
+#
+# Default: none
+#
+# Example:
+#onconnect = {
+#      "p":"nickserv":"identify foobar"
+#      "n":"nickserv@services.host.net":"id raboof"
+#      "r":"OPER foo bar"
+#}
+
+
+# automodes = { "mask":"privilegded" }: List of people who are automatically
+#              given certain privilege on channel. Mask is given in form of
+#              "mode:nick!username@host/#channel" (where "mode" is a single
+#              character) and list is processed as a chain.
+#
+# This option might not be compiled in.
+#
+# Default: none
+#
+# Example:
+#automodes = {
+#      "o:zak*!zak@client*-myisp.com/#channel":"yes"
+#      "o:zak*!*@evil.impersonator.net/#foobar":"no"
+#      "v:newbie*!*@ircnet.com/#newbie":"yes"
+#}
+
+
+# automodedelay = "seconds": Time (in seconds) after first queued mode change
+#              would take effect. During this period of time miau can collect
+#              more than one mode change and commit up to three at a time.
+#              Other situation reasonaly big value (like 30) here could prove
+#              useful is channel where there are stupid "auto-oping" bots.
+#              (Stupid bots do mode changes even if someone else did that
+#              already.)
+#
+# This option might not be compiled in.
+#
+# Default: 30
+#
+# Example:
+#automodedelay = "60"
+
+
+# cmdpasswd = "password": Password for remote commands. If this is 13 characters
+#              long, miau assumes it's crypted. Comment this out or leave it
+#              empty to disable remote commands. When sending miau a remote
+#              command, password _always_ begins with column (':') (if
+#              cmdpasswd is set to "foobar" (or hash of it), you need to send
+#              miau a message beginning with ":foobar" to issue a remote
+#              command).
+#
+# This feature might not be compiled in.
+#
+# If miau is compiled with ENABLE_MKPASSWD, miau can generate password-hashes
+# (from command line) with -c -switch.
+#
+# Default: disabled
+#
+# Example:
+#cmdpasswd = ""
+
+
+# dccbounce = "state": miau can bounce DCCs. Set to true to enable bouncing.
+#              You probably don't need this.
+#
+# This option might not be compiled in.
+#
+# Default: false
+#
+# Example:
+#dccbounce = "true"
+
+
+# dccbindhost = "host": If miau has separate IPs for IRC-network and clients,
+#              you should enter IP for clients here.
+#
+# This option might not be compiled in.
+#
+# Default: no default
+#
+# Example:
+#dccbindhost = "10.0.0.1"