Please merge (sort of) couchdb 1.1.1-1 from Debian testing
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
couchdb (Debian) |
New
|
Unknown
|
|||
couchdb (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
As UbuntuOne must drop CouchDB sync, we need a plan to minimize the pain this causes to apps built around per-user CouchDB (whether they use desktopcouch, dc3, or UserCouch). Novacut and Dmedia are at the top of my personal list for obvious reasons, but there are no doubt others.
Unfortunately, the `couchdb` package itself is a rather sticky issue because:
* CouchDB in Ubuntu probably wont carry many Ubuntu-specific changes going forward, so a sync with Debian is probably inevitable
* However, for desktop CouchDB users, there is an *essential* Ubuntu-specific change: the split into the `couchdb-bin` and `couchdb` packages
For background, the Ubuntu `couchdb-bin` package contains the CouchDB app, and the `couchdb` package contains the init.d script and a few other tidbits needed for starting a system-wide CouchDB at boot. For Novacut and similar apps, it's totally silly to start a system-wide CouchDB for no reason... please don't make us!
So in order of preference, I see 2 possible solutions:
1. Best case, get the couchdb-bin/couchdb split accepted into Debian, and ship a zero-delta sync in Ubuntu
2. Worst case, ship a very low-delta merge in Ubuntu, just enough to do the couchdb-bin/couchdb split
For (1), I have a pretty strong case, I think: assuming folks who write CouchDB using apps want unit tests (surely?), they need a sane unit testing idiom, and that's a place where the couchdb-bin/couchdb split makes tons of sense. For Novacut, we have a simple but highly effective Python3 library for this: https:/
For (2), well, should the maintenance burden for the Ubuntu-specific changes fall on, say, me, I want the delta between Debian and Ubuntu to be as small as possible.
So regardless how it plays out, a low delta from Debian seems the key, so I have a branch that started with 1.1.1-1 from Debian testing and then does the couchdb/couchdb-bin split as minimally as I could figure out:
https:/
Thoughts?
Related branches
- Ubuntu branches: Pending requested
-
Diff: 171 lines (+70/-17)7 files modifieddebian/changelog (+17/-0)
debian/control (+21/-1)
debian/couchdb-bin.install (+3/-0)
debian/couchdb.install (+7/-0)
debian/couchdb.postinst (+2/-1)
debian/couchdb.postrm (+5/-2)
debian/rules (+15/-13)
- Evan Broder (community): Needs Resubmitting
- Ubuntu branches: Pending requested
-
Diff: 77935 lines (+55225/-5914) (has conflicts)296 files modified.pc/.version (+1/-0)
.pc/applied-patches (+1/-0)
.pc/force-reload.patch/etc/init/couchdb.tpl.in (+168/-0)
AUTHORS (+8/-0)
CHANGES (+420/-0)
INSTALL (+237/-0)
INSTALL.Unix (+234/-0)
INSTALL.Windows (+156/-0)
LICENSE (+29/-0)
Makefile.am (+4/-0)
Makefile.in (+74/-7)
NEWS (+216/-3)
NOTICE (+20/-1)
THANKS (+83/-31)
acinclude.m4 (+6/-0)
aclocal.m4 (+86/-9)
bin/Makefile.am (+10/-20)
bin/Makefile.in (+54/-21)
bin/couchjs.tpl.in (+0/-92)
build-aux/config.guess (+23/-84)
build-aux/config.sub (+23/-93)
build-aux/depcomp (+21/-17)
build-aux/install-sh (+116/-124)
build-aux/ltmain.sh (+139/-663)
config.h.in (+17/-32)
configure (+6804/-338)
configure.ac (+163/-35)
debian/changelog (+282/-0)
debian/control (+68/-0)
debian/copyright (+90/-0)
debian/couchdb-bin.install (+3/-0)
debian/couchdb.install (+7/-0)
debian/couchdb.lintian-overrides (+3/-0)
debian/couchdb.postinst (+31/-0)
debian/couchdb.postrm (+37/-0)
debian/patches/force-reload.patch (+21/-0)
debian/patches/series (+1/-0)
debian/rules (+57/-0)
debian/source/format (+4/-0)
etc/Makefile.in (+29/-6)
etc/couchdb/Makefile.am (+12/-3)
etc/couchdb/Makefile.in (+22/-7)
etc/couchdb/default.ini.tpl.in (+92/-12)
etc/couchdb/local.ini (+69/-17)
etc/default/Makefile.in (+10/-4)
etc/init/Makefile.in (+10/-4)
etc/launchd/Makefile.in (+10/-4)
etc/logrotate.d/Makefile.in (+10/-4)
etc/windows/Makefile.in (+376/-0)
etc/windows/couchdb.iss.tpl (+91/-0)
license.skip (+21/-7)
m4/libtool.m4 (+7312/-0)
m4/ltoptions.m4 (+371/-0)
m4/ltsugar.m4 (+126/-0)
m4/ltversion.m4 (+26/-0)
share/Makefile.am (+29/-8)
share/Makefile.in (+81/-12)
share/server/json2.js (+485/-0)
share/server/loop.js (+202/-97)
share/server/mimeparse.js (+1/-1)
share/server/render.js (+301/-0)
share/server/state.js (+21/-0)
share/server/util.js (+126/-1)
share/server/views.js (+2/-13)
share/www/_sidebar.html (+28/-0)
share/www/couch_tests.html (+4/-1)
share/www/custom_test.html (+12/-0)
share/www/database.html (+20/-0)
share/www/dialog/_change_password.html (+31/-0)
share/www/index.html (+4/-0)
share/www/replicator.html (+101/-29)
share/www/script/couch.js (+98/-27)
share/www/script/couch_test_runner.js (+203/-4)
share/www/script/couch_tests.js (+10/-1)
share/www/script/futon.browse.js (+74/-6)
share/www/script/futon.format.js (+11/-0)
share/www/script/futon.js (+455/-137)
share/www/script/jquery-ui-1.8.11.custom.min.js (+81/-0)
share/www/script/jquery.couch.js (+239/-18)
share/www/script/json2.js (+95/-41)
share/www/script/jspec/jspec.js (+1759/-0)
share/www/script/test/all_docs.js (+65/-7)
share/www/script/test/attachment_conflicts.js (+56/-0)
share/www/script/test/attachment_names.js (+28/-17)
share/www/script/test/attachment_paths.js (+10/-4)
share/www/script/test/attachment_ranges.js (+134/-0)
share/www/script/test/attachment_views.js (+2/-2)
share/www/script/test/attachments.js (+49/-11)
share/www/script/test/attachments_multipart.js (+416/-0)
share/www/script/test/auth_cache.js (+530/-249)
share/www/script/test/basics.js (+50/-19)
share/www/script/test/bulk_docs.js (+5/-5)
share/www/script/test/changes.js (+363/-1)
share/www/script/test/compact.js (+3/-3)
share/www/script/test/config.js (+101/-5)
share/www/script/test/conflicts.js (+29/-0)
share/www/script/test/cookie_auth.js (+196/-7)
share/www/script/test/copy_doc.js (+3/-0)
share/www/script/test/design_docs.js (+453/-17)
share/www/script/test/erlang_views.js (+1/-1)
share/www/script/test/etags_views.js (+152/-32)
share/www/script/test/http.js (+3/-3)
share/www/script/test/jsonp.js (+49/-0)
share/www/script/test/list_views.js (+91/-1)
share/www/script/test/method_override.js (+43/-0)
share/www/script/test/oauth.js (+39/-11)
share/www/script/test/proxyauth.js (+132/-1)
share/www/script/test/purge.js (+44/-4)
share/www/script/test/recreate_doc.js (+158/-45)
share/www/script/test/reduce.js (+20/-4)
share/www/script/test/reduce_builtin.js (+40/-3)
share/www/script/test/replication.js (+613/-19)
share/www/script/test/replicator_db.js (+1447/-0)
share/www/script/test/rewrite.js (+804/-371)
share/www/script/test/security_validation.js (+18/-11)
share/www/script/test/show_documents.js (+167/-55)
share/www/script/test/stats.js (+321/-0)
share/www/script/test/update_documents.js (+71/-10)
share/www/script/test/users_db.js (+229/-103)
share/www/script/test/view_collation_raw.js (+133/-0)
share/www/script/test/view_errors.js (+30/-3)
share/www/script/test/view_include_docs.js (+54/-0)
share/www/script/test/view_multi_key_all_docs.js (+37/-0)
share/www/script/test/view_multi_key_design.js (+81/-3)
share/www/script/test/view_pagination.js (+74/-49)
share/www/script/test/view_sandboxing.js (+90/-2)
share/www/script/test/view_update_seq.js (+109/-0)
share/www/session.html (+99/-0)
share/www/style/jquery-ui-1.8.11.custom.css (+347/-0)
share/www/style/layout.css (+27/-4)
src/Makefile.in (+29/-6)
src/couchdb/Makefile.am (+13/-1)
src/couchdb/Makefile.in (+72/-7)
src/couchdb/couch_app.erl (+56/-0)
src/couchdb/couch_auth_cache.erl (+422/-0)
src/couchdb/couch_btree.erl (+141/-5)
src/couchdb/couch_changes.erl (+340/-0)
src/couchdb/couch_config.erl (+39/-0)
src/couchdb/couch_config_writer.erl (+57/-0)
src/couchdb/couch_db.erl (+147/-13)
src/couchdb/couch_db.hrl (+37/-1)
src/couchdb/couch_db_updater.erl (+132/-49)
src/couchdb/couch_doc.erl (+302/-19)
src/couchdb/couch_event_sup.erl (+6/-2)
src/couchdb/couch_file.erl (+158/-24)
src/couchdb/couch_httpd.erl (+431/-36)
src/couchdb/couch_httpd_auth.erl (+91/-8)
src/couchdb/couch_httpd_db.erl (+551/-94)
src/couchdb/couch_httpd_external.erl (+24/-7)
src/couchdb/couch_httpd_misc_handlers.erl (+86/-21)
src/couchdb/couch_httpd_proxy.erl (+431/-0)
src/couchdb/couch_httpd_rewrite.erl (+463/-0)
src/couchdb/couch_httpd_show.erl (+173/-4)
src/couchdb/couch_httpd_vhost.erl (+407/-0)
src/couchdb/couch_httpd_view.erl (+204/-27)
src/couchdb/couch_js_functions.hrl (+241/-0)
src/couchdb/couch_key_tree.erl (+160/-66)
src/couchdb/couch_log.erl (+84/-3)
src/couchdb/couch_os_daemons.erl (+364/-0)
src/couchdb/couch_os_process.erl (+5/-4)
src/couchdb/couch_query_servers.erl (+330/-22)
src/couchdb/couch_ref_counter.erl (+5/-1)
src/couchdb/couch_rep.erl (+511/-47)
src/couchdb/couch_rep_att.erl (+4/-0)
src/couchdb/couch_rep_changes_feed.erl (+298/-32)
src/couchdb/couch_rep_httpc.erl (+134/-3)
src/couchdb/couch_rep_missing_revs.erl (+6/-6)
src/couchdb/couch_rep_reader.erl (+40/-21)
src/couchdb/couch_rep_writer.erl (+130/-4)
src/couchdb/couch_replication_manager.erl (+629/-0)
src/couchdb/couch_server.erl (+88/-6)
src/couchdb/couch_server_sup.erl (+39/-1)
src/couchdb/couch_stream.erl (+182/-56)
src/couchdb/couch_util.erl (+208/-39)
src/couchdb/couch_view.erl (+93/-20)
src/couchdb/couch_view_compactor.erl (+39/-7)
src/couchdb/couch_view_group.erl (+203/-46)
src/couchdb/couch_view_updater.erl (+65/-7)
src/couchdb/couch_work_queue.erl (+158/-0)
src/couchdb/priv/Makefile.am (+87/-3)
src/couchdb/priv/Makefile.in (+442/-17)
src/couchdb/priv/couch_js/help.h (+80/-0)
src/couchdb/priv/couch_js/http.c (+584/-0)
src/couchdb/priv/couch_js/http.h (+27/-1)
src/couchdb/priv/couch_js/main.c (+24/-0)
src/couchdb/priv/couch_js/sm170.c (+378/-0)
src/couchdb/priv/couch_js/sm180.c (+387/-0)
src/couchdb/priv/couch_js/sm185.c (+401/-0)
src/couchdb/priv/couch_js/utf8.c (+294/-1)
src/couchdb/priv/couch_js/util.c (+252/-0)
src/couchdb/priv/couch_js/util.h (+33/-0)
src/couchdb/priv/stat_descriptions.cfg.in (+53/-0)
src/erlang-oauth/Makefile.in (+10/-4)
src/erlang-oauth/oauth.app.in (+23/-0)
src/erlang-oauth/oauth_hmac_sha1.erl (+4/-0)
src/erlang-oauth/oauth_http.erl (+1/-1)
src/erlang-oauth/oauth_plaintext.erl (+4/-0)
src/erlang-oauth/oauth_uri.erl (+38/-28)
src/etap/Makefile.in (+10/-4)
src/etap/etap_web.erl (+2/-2)
src/ibrowse/Makefile.am (+1/-1)
src/ibrowse/Makefile.in (+11/-5)
src/ibrowse/ibrowse.app.in (+16/-0)
src/ibrowse/ibrowse.erl (+354/-251)
src/ibrowse/ibrowse.hrl (+10/-1)
src/ibrowse/ibrowse_app.erl (+4/-5)
src/ibrowse/ibrowse_http_client.erl (+1180/-765)
src/ibrowse/ibrowse_lb.erl (+25/-6)
src/ibrowse/ibrowse_lib.erl (+173/-181)
src/ibrowse/ibrowse_sup.erl (+2/-4)
src/ibrowse/ibrowse_test.erl (+173/-37)
src/mochiweb/Makefile.am (+85/-0)
src/mochiweb/Makefile.in (+94/-4)
src/mochiweb/internal.hrl (+3/-0)
src/mochiweb/mochifmt.erl (+13/-14)
src/mochiweb/mochifmt_records.erl (+8/-0)
src/mochiweb/mochifmt_std.erl (+7/-0)
src/mochiweb/mochiglobal.erl (+107/-0)
src/mochiweb/mochihex.erl (+27/-11)
src/mochiweb/mochijson.erl (+26/-9)
src/mochiweb/mochijson2.erl (+223/-12)
src/mochiweb/mochilists.erl (+104/-0)
src/mochiweb/mochilogfile2.erl (+140/-0)
src/mochiweb/mochinum.erl (+62/-20)
src/mochiweb/mochitemp.erl (+310/-0)
src/mochiweb/mochiutf8.erl (+316/-0)
src/mochiweb/mochiweb.app.in (+35/-0)
src/mochiweb/mochiweb.app.src (+9/-0)
src/mochiweb/mochiweb.erl (+200/-21)
src/mochiweb/mochiweb_acceptor.erl (+48/-0)
src/mochiweb/mochiweb_app.erl (+7/-0)
src/mochiweb/mochiweb_charref.erl (+24/-11)
src/mochiweb/mochiweb_cookies.erl (+80/-28)
src/mochiweb/mochiweb_cover.erl (+75/-0)
src/mochiweb/mochiweb_echo.erl (+9/-2)
src/mochiweb/mochiweb_headers.erl (+148/-1)
src/mochiweb/mochiweb_html.erl (+421/-217)
src/mochiweb/mochiweb_http.erl (+178/-26)
src/mochiweb/mochiweb_io.erl (+46/-0)
src/mochiweb/mochiweb_mime.erl (+94/-0)
src/mochiweb/mochiweb_multipart.erl (+444/-18)
src/mochiweb/mochiweb_request.erl (+187/-92)
src/mochiweb/mochiweb_response.erl (+8/-0)
src/mochiweb/mochiweb_skel.erl (+27/-14)
src/mochiweb/mochiweb_socket.erl (+84/-0)
src/mochiweb/mochiweb_socket_server.erl (+109/-80)
src/mochiweb/mochiweb_sup.erl (+7/-0)
src/mochiweb/mochiweb_util.erl (+547/-103)
src/mochiweb/reloader.erl (+39/-1)
test/Makefile.in (+211/-4)
test/bench/Makefile.in (+388/-0)
test/etap/010-file-basics.t (+2/-1)
test/etap/020-btree-basics.t (+13/-0)
test/etap/021-btree-reductions.t (+22/-0)
test/etap/030-doc-from-json.t (+10/-0)
test/etap/031-doc-to-json.t (+10/-0)
test/etap/050-stream.t (+11/-1)
test/etap/060-kt-merging.t (+97/-61)
test/etap/070-couch-db.t (+4/-0)
test/etap/072-cleanup.t (+126/-0)
test/etap/083-config-no-files.t (+1/-1)
test/etap/110-replication-httpc.t (+9/-1)
test/etap/111-replication-changes-feed.t (+14/-1)
test/etap/112-replication-missing-revs.t (+26/-4)
test/etap/113-replication-attachment-comp.t (+306/-0)
test/etap/130-attachments-md5.t (+251/-0)
test/etap/140-attachment-comp.t (+728/-0)
test/etap/150-invalid-view-seq.t (+190/-0)
test/etap/160-vhosts.t (+306/-0)
test/etap/170-os-daemons.es (+26/-0)
test/etap/170-os-daemons.t (+114/-0)
test/etap/171-os-daemons-config.es (+83/-0)
test/etap/171-os-daemons-config.t (+74/-0)
test/etap/172-os-daemon-errors.1.sh (+17/-0)
test/etap/172-os-daemon-errors.2.sh (+15/-0)
test/etap/172-os-daemon-errors.3.sh (+15/-0)
test/etap/172-os-daemon-errors.4.sh (+15/-0)
test/etap/172-os-daemon-errors.t (+126/-0)
test/etap/173-os-daemon-cfg-register.t (+93/-0)
test/etap/180-http-proxy.ini (+20/-0)
test/etap/180-http-proxy.t (+378/-0)
test/etap/190-oauth.t (+31/-0)
test/etap/200-view-group-no-db-leaks.t (+243/-0)
test/etap/201-view-group-shutdown.t (+300/-0)
test/etap/210-os-proc-pool.t (+163/-0)
test/etap/Makefile.am (+96/-0)
test/etap/Makefile.in (+590/-0)
test/etap/random_port.ini (+19/-0)
test/etap/test_cfg_register.c (+30/-0)
test/etap/test_util.erl.in (+73/-0)
test/etap/test_web.erl (+99/-0)
test/javascript/Makefile.in (+392/-0)
test/javascript/run.tpl (+33/-0)
test/view_server/Makefile.in (+380/-0)
utils/Makefile.in (+10/-4)
var/Makefile.in (+10/-4)
Changed in couchdb (Debian): | |
status: | Unknown → New |
For reference, here is the debian/changelog bits I added:
couchdb (1.1.1-1ubuntu1) precise; urgency=low
* Started with branch of 1.1.1-1 from Debian testing default. ini and /etc/couchdb/ default. d are delivered in local.ini and etc/couchdb/ local.d are owned by the "couchdb" user, while /etc/couchdb
* Split into `couchdb-bin` and `couchdb` packages as found in Ubuntu, with
goal of keeping delta between Debian and Ubuntu as low as possible
* Changes from how split is done in Ubuntu:
- /etc/couchdb/
`couchdb-bin` and are owned by root
- Only `couchdb` has postinst, postrm scripts, meaning `couchdb-bin` does
not create (or remove) the "couchdb" user/group
* Changes from Debian:
- After couchdb.postinst runs, only /etc/couchdb/
/
remains owned by root