---== CEAN Packaging Guide ==--- To be included into CEAN, your project needs to follow some minimial requirements. All requirements are listed bellow. Accepted archive source are: svn git cvs file .erl archive .zip .tar.gz .tgz .tar.bz2 .tbz2 When using GIT, SVN or CVS, project tree must come with at least the following directories: src/ ebin/ priv/{lib,bin}/ (if needed) include/ (if needed) When using archive file, this directory tree must be extracted as follow: projectname-version/ src/ ebin/ priv/{lib,bin}/ (if needed) include/ (if needed) When using simple uniq .erl file, no directory tree is required, e.g.: mycontrib.erl Compilation must be done with (ordered preference) - rebar - Emakefile - configure/autoconf - Makefile If none, then all .erl files from src are compiled into ebin. In that case, the following flags are used: -I include and -I erlang/lib/*/include After compilation, libraries are into priv/lib and binaries are into priv/bin. Then, you must provide a .pub file which is describing your project. example of .pub file: ejabberd {author, {"Process-one", "contact@process-one.net", {2006,11,9}}}. {packager, {"Christophe Romain", "christophe.romain@process-one.net"}}. {category, ["server","messaging"]}. {depends, ["asn1","crypto","kernel","mnesia","odbc","sasl","ssl","stdlib","tools"]}. {keywords, ["jabber","xmpp","server","chat"]}. {summary, "Erlang jabber/XMPP server"}. {abstract, "ejabberd is a high-performance instant messaging server. " "An instant messaging server allows to transfer presence and status information " "between users connected to serverse and support real-time communications between them.
" "ejabberd relies on XMPP (eXtensible Messaging and Presence Protocol) a largely-accepted XML " "protocol standardized by the IETF (The Internet Engineering Task Force). " "The protocol evolution is handled by the Jabber Software Foundation (JSF), " "whose mission is to create the world's best protocols for instant messaging, presence, " "and other forms of near-real-time communication based on XML."}. {home, "http://www.process-one.net/en/ejabberd"}. {url, "http://svn.process-one.net/ejabberd/trunk"}. {configure, "--enable-odbc"}. supported syntaxe: {author, {"Name", "EMail", {Year,Month,Day}}}. {author, {"Name", "EMail"}}. {packager, {"Name", "EMail"}}. This is an optional field. If packager field is not there, the author is declared as packager. {category, ["Category"]}. Category name must match one of the category listed on CEAN web site. If you feel that a category is missing, you can set it into the .pub file, but please drop me a mail in that case. You can also provide several category. {name, "PackageName"}. {depends, ["Package1","Package2",...]}. Dependency is a list of package name. Package name can include version: "stdlib" means requires stdlib any version "=stdlib-1.14.2" means requires stdlib version 1.14.2 ">stdlib-1.14.2" means requires stdlib version newer than 1.14.2 "can use HTML tags."}. Detailed package description. {home, "http://www.your-web-site.org"}. {url, "git://www.site.org/project.git"}. {url, "http://www.erlang.org/download/otp_src_R11B-2.tar.gz"}. {url, "http://www.site.org/package.zip"}. {url, "http://www.site.org/package.erl"}. {configure, "arguments"}. This is an optional field. Arguments given to configure script at compile time. If your package does not include a LICENCE file on root directory, then the default LICENCE from CEAN root directory is effective (ERLANG PUBLIC LICENSE). -------- -------- .pub template {author, {"", ""}}. {packager, {"", ""}}. {category, []}. {depends, []}. {keywords, []}. {summary, ""}. {abstract, ""}. {home, "http://"}. {url, ""}.