Hello, I'm working on making a Debian package of couchdb-2.0. I figure now is the time to start working on this, before it is released. Also I need this version for some development work I'm involved in. Right now, the 1.5 version of couchdb is in Debian, I worked a lot on getting the 1.6 version updated there, and was 90% finished, but then I decided it was better to wait for 2.0.
I have a few questions and issues that I'd like to work out, I'll try not to overwhelm you and instead just ask a few at a time. First of all, to bootstrap, I need to run ./configure before anything else. Presumably, when there is a release, there will be a tarball that will include everything, but right now this pulls in a bunch of submodules via git. I can't really distribute a package that pulls things from git during the build phase, and will find it really difficult to put into the debian archive src/*/.git directories. Presumably this will be resolved when a release tarball will be made? 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 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 Another issue is that I can't seem to get a build prefix to work in a reasonable way. If I pass the following options to configure: -p $(DESTDIR)/usr -d ../var/lib/couchdb -v ../var/lib/couchdb in order that things are installed properly into the debian package, and then I install the package, I end up with things in very strange locations: /usr/share/server/main.js /usr/share/server/coffee-script.js /usr/releases /usr/releases/start_erl.data /usr/releases/RELEASES /usr/releases/2.0.0a /usr/releases/2.0.0a/sys.config /usr/releases/2.0.0a/couchdb.boot /usr/releases/2.0.0a/vm.args /usr/releases/2.0.0a/start_clean.boot /usr/releases/2.0.0a/couchdb.script /usr/releases/2.0.0a/start_clean.rel /usr/releases/2.0.0a/start_clean.script /usr/releases/2.0.0a/couchdb.rel /usr/erts-6.2 ... /usr/var /usr/var/log /usr/var/log/couchdb.log /usr/etc /usr/etc/local.ini ... (same result if I pass -p $(DESTDIR)/) I would like things to get installed in some commonly accepted directories: /etc/couchdb - config files /var/log/couchdb - log files /var/lib/couchdb - data directory /usr/bin/couchdb - binary /usr/lib/erlang/lib - dependent libraries /usr/lib/erlang/releases - what is being put in /usr/releases maybe? right now all the libraries are being put in /usr/lib directly (and I'm concerned about the install of /usr/lib/erts-6.2, i've already got this installed in /usr/lib/erlang/erts-62 from my erlang install). Some other minor documentation issues follow. The Install.UNIX says: > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > > Installing > > ---------- > > > > Once you have satisfied the dependencies you should run: > > > > ./configure > > > > This script will configure CouchDB to be installed into `/usr/local` > > by default. > > > > If you wish to customize the installation, pass `--help` to this > > script. > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > The last two sentences are not true. It will be installed into /opt/couchdb by default, and --help doesn't work, only -h. The README-DEV says: > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > > If you intend to run the test suites: > > > > ./configure -c > > > > If you want to build it into different destination than `/usr/local`. > > > > ./configure --prefix=/<your directory path> > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > both of those are wrong. The -c option currently is: -c request that couchjs is linked to cURL (default false) and there is no --prefix option. That is all for now! Thanks! micah
