Paul Davis <[email protected]>
writes:

> On Thu, Jan 22, 2015 at 1:30 PM, micah anderson <[email protected]> wrote:
>
>> I'd like to decouple this from the package building process, as some of
>> these are already available as independent packages in Debian, and it is
>> against the Debian policy to have embedded code-copies of software that
>> is available elsewhere. However, I am unsure which of these are couchdb
>> specific, and which are just necessary dependencies
>>
>> The following are already in Debian, and maybe could just be
>> re-used. The ones that are being pulled in via the rebar.config.script
>> are directly from the master branch of these projects. Can couchdb
>> declare a specific version dependency for these so that we can link them
>> directly by re-using the existing libraries, instead of cloning the git
>> repository? Or are there specific changes that you have done that are
>> not upstream?
>>
>> folsom
>> goldrush
>> ibrowse
>> jiffy
>> mochiweb
>>
>
> This bit is unfortunately a similar impedance mismatch with Debian
> policy as exists for Python modules and the like. Debian wants to
> package them even though Erlang standard practice is to depend on the
> project repository and pull it in at compile time. More on this below.

Yeah, this is a clash between different goals. It makes total sense in a
development environment to make pulling in these dependencies as easy
and automatic as possible. For a distribution, this is anathema because
it very quickly turns into an unmaintainable problem, especially when it
comes to handling security updates.

>> Then there are the remaining ones. Which of the following are just
>> general erlang libraries that we could work on getting into debian
>> separately, and then making couchdb detect if they are installed on
>> installation, and error out if they are not?
>>
>> b64url
>> cassim
>> couch_log
>> chttpd
>> couch
>> couch_index
>> couch_mrview
>> couch_replicator
>> couch_dbupdates
>> couch_plugins
>> couch_event
>> couch_stats
>> docs
>> ddoc_cache
>> ets_lru
>> fabric
>> fauxton
>> global_changes
>> ioq
>> khash
>> mem3
>> oauth
>> rexi
>> setup
>> snappy
>>
>
> oauth is the only dependency that's not authored by the CouchDB
> project. Of the others there are a couple that *might* be useful as
> libraries but I don't think anyone is using them but us. Most of them
> though are specific to CouchDB and not usable without CouchDB. Erlang
> is an odd beast in that its a flat namespace that still wants to group
> bits of logic. Thus it either forces you to separate out work into
> multiple Git repositories or muck around with manually setting
> versions and so on in various places. Neither is a super awesome
> solution but this was the one we currently have.

If they are couchdb-specific, then from Debian's standpoint, they are
perfectly fine staying where they are. Decoupling these is only useful
if they are generic purpose libraries that people may wish to install
for other purposes.

If the only one that is independent in that list is oauth, then that is
great because that makes things easier from my point of view.

> The other issue with Debian policy as you point out for the erts
> directory, distributing an Erlang application contains the entire VM
> and all application code (ie, from the stdlib on up). Hence when we
> changed to follow the Erlang approach to packaging we broke heavily
> with Debian policy by default. That's not to say we can't make things
> work with Debian, it just makes things a bit more complicated.
>
> I think the best approach would be to go and look at another Erlang
> project thats already been packaged for Debian and try and see if they
> have any tips on how to integrate with rebar or a similar current
> Erlang build/packaging tool. We're not tied to rebar necessarily but
> we will want to use one of the standard approaches (which is mostly
> rebar, but erlang.mk seems to be picking up steam lately).

That is a good idea. I've found a few that use rebar:

Package: ejabberd
Package: erlang-bear
Package: erlang-bitcask
Package: erlang-cherly
Package: erlang-cl
Package: erlang-cowboy
Package: erlang-folsom
Package: erlang-goldrush
Package: erlang-ibrowse
Package: erlang-jiffy
Package: erlang-lager
Package: erlang-lhttpc
Package: erlang-meck
Package: erlang-p1-cache-tab
Package: erlang-p1-iconv
Package: erlang-p1-logger
Package: erlang-p1-mysql
Package: erlang-p1-pam
Package: erlang-p1-pgsql
Package: erlang-p1-sip
Package: erlang-p1-stringprep
Package: erlang-p1-stun
Package: erlang-p1-tls
Package: erlang-p1-utils
Package: erlang-p1-xml
Package: erlang-p1-yaml
Package: erlang-p1-zlib
Package: erlang-proper
Package: erlang-xmlrpc

most of those appear to be libraries for erlang (although my erlang
knowledge is very weak), except for ejabberd, so I'm having a look at
that.

It appears to have a normal autotools style configure script that the
debian build system uses to enable various options (couchdb doesn't have
any autotools pieces it seems). After that configure has been run, a
'make' is run, using the Makefile. The Makefile has the 'all' target,
which just runs 'rebar skip_deps=true compile'. This is the same as
couchdb, except for the skip_deps=true argument. 

When ejabberd is installed, it looks like it is installing into
relatively traditional directories, I dont see any erts copies, or
releases containing the whole stack, it looks like this:

./
./var
./var/log
./var/log/ejabberd
./var/lib
./var/lib/ejabberd
./usr
./usr/share
./usr/share/doc
./usr/share/doc/ejabberd
./usr/share/doc/ejabberd/guide.html
./usr/share/doc/ejabberd/changelog.Debian.gz
./usr/share/doc/ejabberd/webadmmainru.png
./usr/share/doc/ejabberd/copyright
./usr/share/doc/ejabberd/README.Debian.gz
./usr/share/doc/ejabberd/NEWS.Debian.gz
./usr/share/doc/ejabberd/webadmmain.png
./usr/share/doc/ejabberd/discorus.png
./usr/share/doc/ejabberd/msrl-dit-flat.png
./usr/share/doc/ejabberd/msrl-dit-deep.png
./usr/share/doc/ejabberd/logo.png
./usr/share/doc/ejabberd/README
./usr/share/doc/ejabberd/msrl-roster-deep.png
./usr/share/doc/ejabberd/TODO.Debian
./usr/share/doc/ejabberd/yozhikheader.png
./usr/share/doc/ejabberd/guide.pdf.gz
./usr/share/doc/ejabberd/examples
./usr/share/doc/ejabberd/examples/mtr
./usr/share/doc/ejabberd/examples/mtr/ejabberd
./usr/share/doc/ejabberd/examples/mtr/ejabberd.cfg
./usr/share/doc/ejabberd/examples/mtr/ejabberd-netbsd.sh
./usr/share/doc/ejabberd/examples/mssql2000.sql.gz
./usr/share/doc/ejabberd/examples/extauth
./usr/share/doc/ejabberd/examples/extauth/check_pass_null.pl
./usr/share/doc/ejabberd/examples/mysql.sql.gz
./usr/share/doc/ejabberd/examples/mssql2012.sql.gz
./usr/share/doc/ejabberd/examples/ejabberd.yml.example
./usr/share/doc/ejabberd/examples/mssql2005.sql.gz
./usr/share/doc/ejabberd/examples/ejabberdctl.cfg.example.gz
./usr/share/doc/ejabberd/examples/ejabberdctl.example.gz
./usr/share/doc/ejabberd/examples/transport-configs
./usr/share/doc/ejabberd/examples/transport-configs/configs
./usr/share/doc/ejabberd/examples/transport-configs/configs/aim-transport.xml
./usr/share/doc/ejabberd/examples/transport-configs/configs/ile.xml.gz
./usr/share/doc/ejabberd/examples/transport-configs/configs/yahoo-transport-2.xml
./usr/share/doc/ejabberd/examples/transport-configs/configs/msn-transport.xml
./usr/share/doc/ejabberd/examples/transport-configs/configs/jit.xml
./usr/share/doc/ejabberd/examples/transport-configs/configs/jabber-gg-transport.xml.gz
./usr/share/doc/ejabberd/examples/transport-configs/init-scripts
./usr/share/doc/ejabberd/examples/transport-configs/init-scripts/aim-transport
./usr/share/doc/ejabberd/examples/transport-configs/init-scripts/jit
./usr/share/doc/ejabberd/examples/transport-configs/init-scripts/jabber-gg-transport
./usr/share/doc/ejabberd/examples/transport-configs/init-scripts/msn-transport
./usr/share/doc/ejabberd/examples/transport-configs/init-scripts/ile
./usr/share/doc/ejabberd/examples/transport-configs/init-scripts/yahoo-transport-2
./usr/share/doc/ejabberd/examples/pg.sql.gz
./usr/share/doc/ejabberd/dev.html
./usr/share/doc/ejabberd/msrl-roster-flat.png
./usr/share/ejabberd
./usr/share/ejabberd/ejabberd.yml.example
./usr/share/man
./usr/share/man/man8
./usr/share/man/man8/ejabberd.8.gz
./usr/share/man/man8/ejabberdctl.8.gz
./usr/share/doc-base
./usr/share/doc-base/ejabberd
./usr/sbin
./usr/sbin/ejabberdctl
./usr/lib
./usr/lib/x86_64-linux-gnu
./usr/lib/x86_64-linux-gnu/ejabberd
./usr/lib/x86_64-linux-gnu/ejabberd/ebin
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_s2s_in.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_c2s.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/gen_pubsub_node.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/node_hometree.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_shared_roster_ldap.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_disco.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_irc.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/eldap_filter_yecc.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/gen_iq_handler.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_muc_log.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_riak.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_announce.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_configure.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/adhoc.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_private.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_sip.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_vcard.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_echo.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_s2s.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/nodetree_tree_odbc.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_sip_registrar.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_stun.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/str.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/node_flat.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/cyrsasl_plain.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/win32_dns.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_rdbms.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_receiver.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_muc.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_time.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_pubsub.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_last.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_pubsub_odbc.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_c2s_config.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/eldap_pool.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_sup.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/translate.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_version.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/eldap.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_shared_roster.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/cyrsasl_digest.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_sic.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_riak_sup.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_odbc.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/extauth.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_regexp.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_http.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_auth_external.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_sip_proxy.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/node_buddy.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/cyrsasl.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_admin.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_offline.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_router.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/gen_mod.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_register.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_system_monitor.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_blocking.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/shaper.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_vcard_ldap.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/pubsub_subscription_odbc.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_auth_internal.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/node_mb.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_local.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_http_poll.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_auth.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_ping.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_proxy65_service.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_irc_connection.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_register_web.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/cyrsasl_anonymous.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_captcha.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_stats.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_pres_counter.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_s2s_out.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/pubsub_subscription.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_auth_anonymous.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/scram.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/XmppAddr.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/node_hometree_odbc.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_proxy65_stream.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_auth_ldap.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_proxy65_lib.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_configure2.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_proxy65.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/node_private.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_socket.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_vcard_xupdate.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd.app
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/nodetree_tree.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_web_admin.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_ip_blacklist.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_frontend_socket.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_auth_odbc.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_config.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/jlib.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_http_bind.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_node_groups.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/jd2ejd.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/randoms.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_listener.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/nodetree_virtual.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_update.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/nodetree_dag.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_web.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_proxy65_sm.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/node_pep_odbc.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/node_dag.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_hooks.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/node_public.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/pubsub_index.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_http_bind.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_commands.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/eldap_filter.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_piefxis.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_ctl.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_http_fileserver.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/node_club.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/cyrsasl_scram.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_carboncopy.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/idna.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_tmp_sup.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_roster.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/node_flat_odbc.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/pubsub_db_odbc.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_app.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_privacy.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/acl.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_auth_riak.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ELDAPv3.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/node_pep.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_sm.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_caps.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_logger.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_muc_room.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_odbc_sup.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/node_dispatch.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_xmlrpc.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_auth_pam.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/odbc_queries.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejabberd_service.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_adhoc.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/mod_service_log.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/ejd2odbc.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/gen_pubsub_nodetree.beam
./usr/lib/x86_64-linux-gnu/ejabberd/ebin/eldap_utils.beam
./usr/lib/x86_64-linux-gnu/ejabberd/priv
./usr/lib/x86_64-linux-gnu/ejabberd/priv/bin
./usr/lib/x86_64-linux-gnu/ejabberd/priv/bin/captcha.sh
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/id.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/he.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/uk.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/de.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/cs.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/no.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/zh.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/pl.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/pt-br.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/es.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/fr.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/eo.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/pt.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/vi.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/wa.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/nl.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/gl.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/ru.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/sv.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/th.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/el.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/tr.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/it.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/ca.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/ja.msg
./usr/lib/x86_64-linux-gnu/ejabberd/priv/msgs/sk.msg
./usr/lib/x86_64-linux-gnu/ejabberd/include
./usr/lib/x86_64-linux-gnu/ejabberd/include/XmppAddr.hrl
./usr/lib/x86_64-linux-gnu/ejabberd/include/ns.hrl
./usr/lib/x86_64-linux-gnu/ejabberd/include/mod_muc_room.hrl
./usr/lib/x86_64-linux-gnu/ejabberd/include/jlib.hrl
./usr/lib/x86_64-linux-gnu/ejabberd/include/ejabberd.hrl
./usr/lib/x86_64-linux-gnu/ejabberd/include/pubsub.hrl
./usr/lib/x86_64-linux-gnu/ejabberd/include/mod_proxy65.hrl
./usr/lib/x86_64-linux-gnu/ejabberd/include/ELDAPv3.hrl
./usr/lib/x86_64-linux-gnu/ejabberd/include/ejabberd_ctl.hrl
./usr/lib/x86_64-linux-gnu/ejabberd/include/eldap.hrl
./usr/lib/x86_64-linux-gnu/ejabberd/include/http_bind.hrl
./usr/lib/x86_64-linux-gnu/ejabberd/include/adhoc.hrl
./usr/lib/x86_64-linux-gnu/ejabberd/include/ejabberd_config.hrl
./usr/lib/x86_64-linux-gnu/ejabberd/include/ejabberd_http.hrl
./usr/lib/x86_64-linux-gnu/ejabberd/include/logger.hrl
./usr/lib/x86_64-linux-gnu/ejabberd/include/ejabberd_commands.hrl
./usr/lib/x86_64-linux-gnu/ejabberd/include/mod_privacy.hrl
./usr/lib/x86_64-linux-gnu/ejabberd/include/ejabberd_web_admin.hrl
./usr/lib/x86_64-linux-gnu/ejabberd/include/mod_roster.hrl
./etc
./etc/default
./etc/default/ejabberd
./etc/logrotate.d
./etc/logrotate.d/ejabberd
./etc/ejabberd
./etc/ejabberd/ejabberdctl.cfg
./etc/ejabberd/inetrc
./etc/init.d
./etc/init.d/ejabberd

> As you've run into, the ./configure is not at all a standard
> ./configure script. Its used almost exclusively for building an Erlang
> release which results in a single self contained tarball (including
> the entire Erlang VM). There was some historical half hearted attempts
> at adding some familiar options but as you've seen they aren't quite
> up to the task of meeting Debian's packaging requirements.
>
> Its a bit of a mish mash for the time being. If you let us know what
> things are needed to help with packaging I'm sure we'll be able to do
> most of what you need. Although I think the easiest approach at this
> time would be to write a script that installs off a release rather
> than trying to write up a build system that does either a release or a
> Debian style install. The project decided to move to the Erlang
> approach to packaging so that'll be the best long term for everyone
> involved I think.
>
> To do that, run:
>
> $ ./configure
> $ make dist

I just tried to do this, but ran into an error in compilation:

...

Done, without errors.
==> b64url (compile)
Compiled src/b64url.erl
Compiling c_src/b64url.c
==> cassim (compile)
Compiled src/cassim_app.erl
Compiled src/cassim.erl
Compiled src/cassim_sup.erl
Compiled src/cassim_security.erl
Compiled src/cassim_metadata_cache.erl
==> lager (compile)
Compiled src/lager_util.erl
Compiled src/lager_transform.erl
Compiled src/lager_config.erl
Compiled src/lager_msg.erl
Compiled src/lager_app.erl
Compiled src/lager_handler_watcher_sup.erl
Compiled src/lager_sup.erl
Compiled src/lager_default_formatter.erl
Compiled src/lager_crash_log.erl
Compiled src/lager_trunc_io.erl
Compiled src/lager_file_backend.erl
Compiled src/lager_console_backend.erl
Compiled src/lager_handler_watcher.erl
Compiled src/lager_stdlib.erl
Compiled src/lager_backend_throttle.erl
Compiled src/lager_format.erl
Compiled src/lager.erl
Compiled src/error_logger_lager_h.erl
==> couch_log (compile)
Compiled src/couch_log.erl
==> config (compile)
Compiled src/config_app.erl
Compiled src/config_listener.erl
Compiled src/config_util.erl
Compiled src/config_writer.erl
Compiled src/config_sup.erl
Compiled src/config.erl
==> chttpd (compile)
Compiled src/chttpd.erl
Compiled src/chttpd_sup.erl
Compiled src/chttpd_cors.erl
Compiled src/chttpd_auth_request.erl
Compiled src/chttpd_app.erl
Compiled src/chttpd_config_listener.erl
Compiled src/chttpd_show.erl
Compiled src/chttpd_auth.erl
Compiled src/chttpd_view.erl
Compiled src/chttpd_external.erl
Compiled src/chttpd_misc.erl
Compiling /tmp/couchdb/src/chttpd/src/chttpd_auth_cache.erl failed:
/tmp/couchdb/src/chttpd/src/chttpd_auth_cache.erl:23: redefining macro 
'ADMIN_CTX'
ERROR: compile failed while processing /tmp/couchdb/src/chttpd: rebar_abort
Makefile:22: recipe for target 'compile' failed
make: *** [compile] Error 1

Reply via email to