[Pkg-erlang-devel] CouchDB packaging updates
Chad MILLER
chad.miller at canonical.com
Thu Nov 12 16:24:29 UTC 2009
On 11/11/2009 10:16 PM, Sam Bisbee wrote:
> On Tue, Nov 10, 2009 at 10:11:57PM -0500, Chad MILLER wrote:
>> On 11/10/2009 08:53 PM, Sam Bisbee wrote:
>>> On Tue, Nov 10, 2009 at 02:55:03PM -0500, Chad MILLER wrote:
>>>> Hi, I work near Elliot, and I don't mind elucidating some of the details
>>>> that he thinks are offtopic here. For most replies about our rationale
>>>> and usage internals, perhaps we should go off-list; I do not mind.
>>>
>>> Hello Chad,
>>>
>>> Thank you very much for your reply, it was quite clear and it sounds like
>>> you're doing some interesting things with couchdb. I'm quite happy to hear that
>>> you're trying to spread couchdb use.
>>>
>>> However, your packaging and use of couchdb _does_ change the natural way things
>>> are done with couchdb. I'm not saying that what you are trying to accomplish is
>>> right or wrong, I'm just saying that it's not what native couchdb does. That
>>> makes it a fork, regardless of whether you change the code or not.
>>
>> I'm running stock couchdb manually, and specifying a different data
>> directory and specifying that it use the magical port "0". That sounds
>> "native" to me, and there is nothing at all I need from couchdb
>> developers. There are no couchdb changes to take to an upstream, and
>> I'm frankly at a loss to imagine what else you think I should do.
>>
>> The only thing on my wish list is that people using this not waste
>> memory or boot time on a daemon that they're not using.
>
> Okay, then maybe that's where my real problem is. If they're not using couchdb,
> then why do they have it installed?
Ah, Sam, you're equating the software name with a single daemon running
as user 'couchdb' on port 5984, which was started at boot. We're saying
that, like all great tools, couchdb is more useful than that. A single
user does not have to run it. All data don't have to be in the same
pool for all users. It doesn't have to be started at boot time, or
perhaps not at all. It doesn't have to be running on a predetermined port.
> And if they're temporarily not using it,
> then why can't they configure it to not run at boot (remove the init script,
> etc.)?
I'll answer why. Remember my secret? The audience for couchdb
functionality will be different.
We're bringing couchdb to every user who uses something that stores data
that more than one program might care about, whether it's a different
package or similar software on a different machine.
Firefox, epiphany, opera, chrome, maybe even lynx -- all sharing
bookmarks on every machine you use. Tomboy notes synch to your
computers (and to your mobile phone). Calendar items. Contacts. The
data are application agnostic, It replicates to everywhere you are.
And we're not driving every usage of couchdb data or trying to predict
it. I spoke to a stranger 30 seconds ago on Freenode who has decided to
change empathy to put IM conversations in the personal couchdb so that
he has them on all the machines he logs-in to. I think it's a wonderful
idea, and it's the first I've heard of it.
I get enthusiastic, so please pardon my verbosity. My point is that we
hope couchdb will be everywhere soon*, even for nontechnical users. My
grandma will not want to mess with /etc .
> I don't think it's a stretch in users' minds that if they install a
> program and forget about it that it'll still be there, doing its job.
Absolutely. If you install 'couchdb', you should get a running daemon
that a normal user doesn't own.
I'm also adding: If you install Tomboy, you should be able to use *a*
couchdb instance without a running system daemon.
>
> If there are two things that get my blood boiling with packages it's when
> either they (1) "depend" on everything including the baby and the bath water in
> the repository, or (2) break everything into tiny packages (ex., what's the
> point in having a dev package without man files or debug symbols?).
>
> This scenario appears to be in the second category for me.
I agree on 1 and 2, but I think instead that we have a good reason to
put the init file in a 'couchdb' package, which Depends on the guts of
couchdb-the-software. There are several projects in the works that need
couchdb-the-software but not a unitary single couchdb daemon. These are
coming to Debian soon.
> As for my upstream comments, I was under the impression that source code,
> config files, etc. had been changed. I came under this impression when Sergei
> put forth a list of things that would need to be done to have a per-user
> couchdb in his eyes (I appended to it) and the response was "we do all that" -
> if all those things are done, then code or config changes had to have been
> made. Hence my repeated spiels about sending such changes upstream.
I intended only to say "we satisfy these three per-user-couchdb
conditions." We fabricate a new configuration file for the personal
couchdb to read, in ~/.config/desktop-couch/ . couchdb 0.10 is perfect
for personal use, with no changes at all to its source.
I hope this has helped convince you, Sam, that splitting has merit.
Also, I hope you, plural, are inspired to help with this project. I
want to take over the ugly old dotfile world and significantly enhance
the Linux desktop (leapfrogging those other OSes!), and I welcome help
from smart people. It's still early, and there's plenty of interesting
work to do.
- chad
* Did you know Ubuntu is shipping 'erlang' and 'couchdb-bin' on The CD
for the most recent Ubuntu release? Not only did we make room in the
700MB, they are installed by *default*! We may have just increased the
number of erlang installations by many orders of magnitude. I, for one,
am very exceited about that.
More information about the Pkg-erlang-devel
mailing list