couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paul Joseph Davis (JIRA)" <>
Subject [jira] [Commented] (COUCHDB-1012) Utility to help plugin developers manage paths
Date Wed, 17 Aug 2011 22:46:27 GMT


Paul Joseph Davis commented on COUCHDB-1012:


You make a good point about switching configurations away from the install time defaults.
I'm not entirely certain that I care too much though. If someone is at the level that they're
swapping their lib or db directories then they can hang out in the corner. As to remove the
db directory to force developers to do something funny I don't see it. I mean, creating a
database at install time? Not even we do that. 


Look at the list of variables you have. Do we even actually install anything in any of these
directories? Maybe the doc directory gets some stuff. But seriously, dvi, pdf, and ps directories?

  --sbindir system admin executables [EPREFIX/sbin] 
  --libexecdir program executables [EPREFIX/libexec] 
  --sharedstatedir modifiable architecture-independent data [PREFIX/com] 
  --infodir info documentation [DATAROOTDIR/info] 
  --localedir locale-dependent data [DATAROOTDIR/locale] 
  --docdir documentation root [DATAROOTDIR/doc/apache-couchdb] 
  --htmldir html documentation [DOCDIR] 
  --dvidir dvi documentation [DOCDIR] 
  --pdfdir pdf documentation [DOCDIR] 
  --psdir ps documentation [DOCDIR]

And then in the CouchDB section:

  --localconfdir configuration data [SYSCONFDIR/$package_identifier] 
  --localdatadir runtime data [DATADIR/$package_identifier] 
  --localdocdir documentation data [DATADIR/doc/$package_identifier] 
  --locallibdir library data [LIBDIR/$package_identifier] 
  --localstatelibdir database data [LOCALSTATEDIR/lib/$package_identifier] 
  --localstatelogdir log data [LOCALSTATEDIR/log/$package_identifier] 
  --localstaterundir daemon data [LOCALSTATEDIR/run/$package_identifier] 

What in the world does "local" mean here? Do you seriously expect users that aren't autotools
experts to have any clue what this stuff means? Consider this as compared to:

  --config-dir   configuration directory
  --db-dir       database directory
  --static-dir   static asset directory
  --doc-dir      documentation directory
  --erl-libs-dir Erlang library directory
  --log-dir      log directory
  --pid-file     daemon PID file
  --uri-file     daemon sockets file

Its almost pointless to even include a description line for these variable names. And why
aren't the CouchDB specific directories first? How often do you expect someone to want to
know about the DVI or PDF directory before the db, log, or erl-libs directory?

I'm not saying we have to get rid of the dvi and ps directories. Its quite possible they'll
get used at some point but the user friendly alias options should be first. Otherwise you
force every user to learn and remember what locallibdir is compared to localdatadir compared
to localstaterundir.

What happened to the old Noah that loved and cared about our users? The Noah that would treat
our users like a small furry rabbit to cuddle. Furry rabbits like this little guy:

> Utility to help plugin developers manage paths
> ----------------------------------------------
>                 Key: COUCHDB-1012
>                 URL:
>             Project: CouchDB
>          Issue Type: New Feature
>          Components: Build System
>            Reporter: Randall Leeds
>            Assignee: Noah Slater
>             Fix For: 1.2
>         Attachments: 0001-add-couch-config-file-used-to-ease-the-build-of-plug.patch,
0001-add-couch-config-file-used-to-ease-the-build-of-plug.patch, 0001-support-pkg-config-for-plugins-COUCHDB-1012.patch
> Developers may want to write plugins (like GeoCouch) for CouchDB. Many hooks in the configuration
system allow loading arbitrary Erlang modules to handle various internal tasks, but currently
there is no straightforward and portable way for developers of these plugins to discover the
location of the CouchDB library files.
> Two options that have been proposed are to use pkg-config or install a separate script
that could be invoked (e.g. as couch-config --erl-libs) to discover important CouchDB installation
> As far as I know the loudest argument against pkg-config is lack of support for Windows.

This message is automatically generated by JIRA.
For more information on JIRA, see:


View raw message