---== 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: CVS Subversion archive .zip archive .tar.gz archive .tgz archive .tar.bz2 archive .tbz2 file .erl When using CVS or SVN, 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) - Emakefile - configure - 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"]}. {name, "ejabberd"}. {vsn, "1.1.3"}. {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"}. {sources, {svn, "http://svn.process-one.net/ejabberd/branches/ejabberd-1.1.3"}}. 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"}. {vsn, "Version"}. vsn can be a.b.c x.y string etc... 1.2a > 1.2 beta > alpha alpha > 1.0 note: package directory will be PackageName-Version {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"}. {source, {svn, "http://svn.site.org/project/trunk"}}. {source, {cvs, ":pserver:anonymous@cvs.site.org:/cvsroot/project"}}. {source, {tar, "http://www.erlang.org/download/otp_src_R11B-2.tar.gz"}}. {source, {zip, "http://www.site.org/package.zip"}}. {source, {erl, "http://www.site.org/package.erl"}}. Note: if archive name includes package version, you must check that it matchs the vsn field. 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).