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
