]> Pileus Git - ~andy/sunrise/commitdiff
net-im/ekg2: Live ebuild for EKG2 IM (bug #187330).
authorMichał Górny <mgorny@gentoo.org>
Sat, 25 Jul 2009 20:53:55 +0000 (20:53 +0000)
committerMichał Górny <mgorny@gentoo.org>
Sat, 25 Jul 2009 20:53:55 +0000 (20:53 +0000)
svn path=/sunrise/; revision=8884

net-im/ekg2/ChangeLog [new file with mode: 0644]
net-im/ekg2/Manifest [new file with mode: 0644]
net-im/ekg2/ekg2-99999999.ebuild [new file with mode: 0644]
net-im/ekg2/metadata.xml [new file with mode: 0644]

diff --git a/net-im/ekg2/ChangeLog b/net-im/ekg2/ChangeLog
new file mode 100644 (file)
index 0000000..f4550ee
--- /dev/null
@@ -0,0 +1,8 @@
+# ChangeLog for net-im/ekg2
+# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
+# $Header: $
+
+  25 Jul 2009; Michał Górny (sedzimir) <gentoo@mgorny.alt.pl>
+  +ekg2-99999999.ebuild, +metadata.xml:
+  Live ebuild for EKG2 IM (bug #187330).
+
diff --git a/net-im/ekg2/Manifest b/net-im/ekg2/Manifest
new file mode 100644 (file)
index 0000000..b57026d
--- /dev/null
@@ -0,0 +1,3 @@
+EBUILD ekg2-99999999.ebuild 6424 RMD160 94e5febd29a6c55df5f459a7f0b1824470f9bb02 SHA1 9c22c99f81d6a3bc6501190d86b90867064f142c SHA256 b32a19df1cfa65fd1822e1b4f6a5b5c1e224be0ad113d6bfd92278ec1f9f16fd
+MISC ChangeLog 258 RMD160 18a9cc33d98ee2f413d888b9f094b6804753954b SHA1 70fe3ecdc8d5ab25dc75c29b2b7ce8999b131ab2 SHA256 bafe7cb0161ef4fc8d374fb3d4efb3eacc5fe31b31294b69fedb7c2d12e7964c
+MISC metadata.xml 2417 RMD160 4f3105d0648d9a31080d2c4b5a9e51d0002ecc06 SHA1 1014f8aca047799557ccfe60b71134f86a6b04d5 SHA256 8ee80399405307e70f2cfb70ad5f6a48200e13d95c4b1bacd71fa14b110bcc21
diff --git a/net-im/ekg2/ekg2-99999999.ebuild b/net-im/ekg2/ekg2-99999999.ebuild
new file mode 100644 (file)
index 0000000..5a6c857
--- /dev/null
@@ -0,0 +1,245 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="2"
+ESVN_REPO_URI="http://toxygen.net/svn/ekg2/trunk"
+
+inherit multilib perl-module subversion
+
+DESCRIPTION="Text-based, multi-protocol instant messenger"
+HOMEPAGE="http://www.ekg2.org"
+SRC_URI=""
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE="dbus extra gadu gif gnutls gpg gpm gsm gtk icq idn inotify irc
+       jabber jogger jpeg mail minimal ncurses nls nntp oracle oss pcap
+       perl python readline remote rss ruby sim sms spell
+       sqlite sqlite3 srv ssl static unicode web xosd zlib"
+
+# -- non-obvious plugin mappings --
+# extra            -> autoresponder, polchat, rivchat, rot13, xmsg
+# !minimal  -> ioctld, logs, rc
+# any sound -> pcm
+# web      -> httprc_xajax
+
+RDEPEND="
+       dbus?   ( sys-apps/dbus )
+       gpg?    ( >=app-crypt/gpgme-1.0.0 )
+       gsm?    ( >=media-sound/gsm-1.0.12-r1 )
+       gtk?    ( >=x11-libs/gtk+-2.4 )
+       idn?    ( net-dns/libidn )
+       nls?    ( virtual/libintl )
+       oracle? ( dev-db/oracle-instantclient-basic )
+       pcap?   ( net-libs/libpcap )
+       perl?   ( >=dev-lang/perl-5.2 )
+       python? ( >=dev-lang/python-2.3.3 )
+       readline? ( sys-libs/readline )
+       rss?    ( >=dev-libs/expat-1.95.6 )
+       ruby?   ( dev-lang/ruby )
+       sim?    ( >=dev-libs/openssl-0.9.6m )
+       xosd?   ( x11-libs/xosd )
+
+       gadu? ( >=net-libs/libgadu-1.7.0
+               gif? ( media-libs/giflib )
+               jpeg? ( >=media-libs/jpeg-6b-r2 ) )
+
+       jabber? ( >=dev-libs/expat-1.95.6
+               gnutls? ( >=net-libs/gnutls-1.0.17 )
+               !gnutls? ( ssl? ( >=dev-libs/openssl-0.9.6m ) )
+
+               zlib? ( sys-libs/zlib ) )
+
+       !minimal? (
+               zlib? ( sys-libs/zlib ) )
+
+       ncurses? ( sys-libs/ncurses[unicode?]
+               gpm? ( >=sys-libs/gpm-1.20.1 )
+               spell? ( >=app-text/aspell-0.50.5 ) )
+
+       sqlite3? ( dev-db/sqlite:3 )
+       !sqlite3? ( sqlite? ( dev-db/sqlite:0 ) )"
+
+DEPEND=">=dev-util/scons-0.97
+       ${RDEPEND}"
+
+pkg_setup() {
+       if ! use gtk && ! use ncurses && ! use readline && ! use remote && ! use web; then
+               ewarn 'ekg2 is being compiled without any frontend, you should consider'
+               ewarn 'enabling at least one of following USEflags:'
+               ewarn '  gtk, ncurses, readline, remote, web.'
+       fi
+}
+
+use_plug() {
+       use $1 && echo -n ,${2:-$1}
+}
+
+# Build comma-separated plugin list based on USE
+# We can put the same plugin few times if it's referenced by more than one flag
+
+build_plugin_list() {
+       echo '@none' \
+       $(use_plug dbus) \
+       $(use_plug extra autoresponder,polchat,rivchat,rot13,xmsg) \
+       $(use_plug gadu gg) \
+       $(use_plug gpg) \
+       $(use_plug gsm) \
+       $(use_plug gtk) \
+       $(use_plug icq) \
+       $(use_plug irc) \
+       $(use_plug jabber jabber) \
+       $(use_plug jogger jogger) \
+       $(use_plug mail) \
+       $(use_plug !minimal ioctld,logs,rc) \
+       $(use_plug ncurses) \
+       $(use_plug nntp feed) \
+       $(use_plug oracle logsoracle) \
+       $(use_plug oss oss,pcm) \
+       $(use_plug pcap sniff) \
+       $(use_plug perl) \
+       $(use_plug python) \
+       $(use_plug readline) \
+       $(use_plug remote) \
+       $(use_plug rss feed) \
+       $(use_plug ruby) \
+       $(use_plug sim) \
+       $(use_plug sms) \
+       $(use_plug sqlite logsqlite) \
+       $(use_plug sqlite3 logsqlite) \
+       $(use_plug web httprc_xajax) \
+       $(use_plug xosd) \
+               | tr -d '[[:space:]]'
+}
+
+# create DEPS list for plugin
+# + means dep forced (fail if unavailable, prioritize over other one-of)
+# - means dep disabled (don't even check for it)
+# use:opt maps USEflag to specified opt
+# usea|useb|usec makes one-of opt
+
+make_deps() {
+       local spls spll flag fopt out
+
+       echo -n " $1_DEPS="
+       shift
+
+       # loop over different opts
+       while [ -n "$1" ]; do
+               spls=$1
+               out=
+               # loop over one-of opts
+               while true; do
+                       # get next one-of, make sure spls gets empty if last
+                       spll=${spls%%|*}
+                       spls=${spls:$(( ${#spll} + 1 ))}
+                       # parse use:opt, if no :opt specified fopt=flag
+                       flag=${spll%:*}
+                       fopt=${spll#*:}
+
+                       # if one of one-of opt matches, we output only it
+                       # else we need to output all of them disabled
+                       use ${flag} && out=+ || out=${out}-
+                       out=${out}${fopt}
+
+                       # got more one-of opts? parse them only if this didn't match
+                       if [ -n "${spls}" ] && ! use ${flag}; then
+                               out=${out},
+                               continue
+                       fi
+
+                       echo -n ${out}
+                       shift
+                       [ -n "$1" ] && echo -n ,
+                       break
+               done
+       done
+}
+
+# create all DEPS lists
+
+build_addopts_list() {
+       use extra && make_deps XMSG inotify
+       use gadu && make_deps GG gif jpeg
+       use jabber && make_deps JABBER zlib 'gnutls|ssl:openssl'
+       use mail && make_deps MAIL inotify
+       use !minimal && make_deps LOGS zlib
+       use ncurses && make_deps NCURSES gpm spell:aspell
+       use rss || use nntp && make_deps FEED rss:expat
+       use sqlite3 || use sqlite && make_deps LOGSQLITE 'sqlite3|sqlite'
+}
+
+# SCons doesn't build perl modules, perl-module.eclass does it better
+
+foreach_perl_module() {
+       if use perl; then
+               cd plugins/perl || die 'cd plugins/perl failed'
+               for DIR in */; do
+                       cd "${DIR}" || die "cd ${DIR} (perl module) failed"
+                       $1
+                       cd ..
+
+                       # workaround perl-module.eclass
+                       unset SRC_PREP
+               done
+               cd ../..
+       fi
+}
+
+use_var() {
+       echo -n "${2:-$1}=" | tr 'a-z' 'A-Z'
+       use $1 && echo -n '1' || echo -n '0'
+}
+
+src_configure() {
+       # HARDDEPS -> build should fail if some dep is unsatisfied
+       # DISTNOTES -> are displayed with /version, helpful for upstream bug reports
+
+       scons PLUGINS=$(build_plugin_list) $(build_addopts_list) \
+               HARDDEPS=1 $(use_var unicode) $(use_var nls) \
+               $(use_var static) $(use_var idn) $(use_var srv RESOLV) \
+               PREFIX=/usr LIBDIR="\$EPREFIX/$(get_libdir)" \
+               DOCDIR="\$DATAROOTDIR/doc/${PF}" \
+               DISTNOTES="emdzientoo ebuild ${PVR}, USE=${USE}" \
+               ${MAKEOPTS} conf || die "scons conf failed"
+
+       foreach_perl_module perl-module_src_configure
+}
+
+src_compile() {
+       # SKIPCONF -> no need to reconfigure
+
+       scons SKIPCONF=1 ${MAKEOPTS} || die "scons failed"
+
+       foreach_perl_module perl-module_src_compile
+}
+
+src_test() {
+       foreach_perl_module perl-module_src_test
+}
+
+src_install() {
+       scons DESTDIR="${D}" ${MAKEOPTS} install || die "scons install failed"
+
+       foreach_perl_module perl-module_src_install
+
+       use perl && fixlocalpod
+       prepalldocs
+}
+
+pkg_postinst() {
+       elog "EKG2 is still considered very experimental. Please do report all issues"
+       elog "to mailing list ekg2-users@lists.ziew.org (you can write in English)."
+       elog "Please do not file bugs to Gentoo Bugzilla."
+       elog
+       elog "Before reporting a bug, please check if it's reproducible and get"
+       elog "complete backtrace of it. Even if you can't reproduce it, you may let us"
+       elog "know that something like that happened."
+       elog
+       elog "How to get backtraces:"
+       elog "  http://www.gentoo.org/proj/en/qa/backtraces.xml"
+       elog
+       elog "Thank you and have fun."
+}
diff --git a/net-im/ekg2/metadata.xml b/net-im/ekg2/metadata.xml
new file mode 100644 (file)
index 0000000..d3cb6f0
--- /dev/null
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+       <herd>maintainer-wanted</herd>
+       <use>
+               <flag name='extra'>Enable following plugins: autoresponder,
+                       polchat, rivchat, rot13, xmsg.</flag>
+               <flag name='gadu'>Enable Gadu-Gadu protocol support (requires
+                       <pkg>net-libs/libgadu</pkg>).</flag>
+               <flag name='gif'>GIF token support for Gadu-Gadu protocol.</flag>
+               <flag name='gnutls'>Enable SSL/TLS support through GnuTLS (for jabber
+                       plugin). If 'ssl' is set too, GnuTLS will be used.</flag>
+               <flag name='gpg'>Enable jabber message encryption through
+                       <pkg>app-crypt/gpgme</pkg>.</flag>
+               <flag name='inotify'>Enable inotify-based filesystem moniotoring support
+                       for xmsg&amp;mail plugins.</flag>
+               <flag name='irc'>Enable IRC protocol support.</flag>
+               <flag name='jogger'>Enable support for Jogger.pl jabber bot message
+                       parsing plugin.</flag>
+               <flag name='jpeg'>JPEG token support for Gadu-Gadu protocol.</flag>
+               <flag name='mail'>Enable mailbox/maildir monitoring plugin.</flag>
+               <flag name='minimal'>Don't build following plugins: ioctld, logs,
+                       rc.</flag>
+               <flag name='oracle'>Support logging messages into Oracle database.</flag>
+               <flag name='pcap'>Enable Gadu-Gadu protocol sniffer plugin (requires
+                       <pkg>net-libs/libpcap</pkg>).</flag>
+               <flag name='remote'>Enable remote UI plugin allowing to connect to
+                       running EKG2 using <pkg>net-im/ekg2-remote</pkg>.</flag>
+               <flag name='sim'>Enable 'sim' plugin which provides asymmetric
+                       encryption of messages used by few unofficial Gadu-Gadu clients
+                       (requires <pkg>dev-libs/openssl</pkg>).</flag>
+               <flag name='sms'>Enable SMS sending plugin.</flag>
+               <flag name='sqlite3'>Support logging messages into SQLite3 database.
+                       If 'sqlite' is set too, SQLite3 will be used.</flag>
+               <flag name='sqlite'>Support logging messages into SQLite2 database.
+                       If 'sqlite3' is set too, it will be used instead.</flag>
+               <flag name='srv'>Use SRV-capable resolver through libresolv.</flag>
+               <flag name='ssl'>Enable SSL/TLS support through OpenSSL (for jabber
+                       plugin). If 'gnutls' is set too, it will be used instead.</flag>
+               <flag name='static'>Link statically with plugins instead of installing
+                       them as shared libraries (external libraries can still be linked
+                       dynamically).</flag>
+               <flag name='web'>Enable httprc_xajax WebUI plugin.</flag>
+       </use>
+</pkgmetadata>