Bug 168923 - Upgraded databases/couchdb (1.2.0)
Summary: Upgraded databases/couchdb (1.2.0)
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Chris Rees
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-06-10 16:40 UTC by Adam Strohl
Modified: 2012-07-02 22:40 UTC (History)
0 users

See Also:


Attachments
file.diff (16.91 KB, patch)
2012-06-10 16:40 UTC, Adam Strohl
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Adam Strohl 2012-06-10 16:40:05 UTC
I have tried contacting the CouchDB (database/couchdb) maintainer via email with an updated port + diffs but have heard nothing back.

CouchDB 1.2.0 has been out for ~2 months now and has a number of performance and security enhancements (no security bug fixes, just architectural changes and better practices).

Fix: See the attached diff file for the changes to upgrade the port from 1.1.0 to 1.2.0.

Basically I got tired of waiting and decided to further clean up the port which had several issues, the most notable being:

 - local.ini which is where local customizations and administrative account information is contain is erroneously removed on deinstall.  I've setup the recommended system of comparing against a local.ini.sample and only removing it if it is identical.  Its unfortunate that anyone upgrading will lose their local.ini because of the 1.1.0 port missing this, at least its fixed now.

 - Shifted the default DB storage location from /var/lib/couchdb to /var/db/couchdb to make it consistent with other DB storage engine ports which use /var/db as their base (ie; mySQL).

I tested this out on a clean 9.0-R system build and operational testing showed no problems.

Patch attached with submission follows:
Comment 1 Chris Rees freebsd_committer freebsd_triage 2012-06-10 21:37:34 UTC
Responsible Changed
From-To: freebsd-ports-bugs->crees

I'll take it.
Comment 2 Adam Strohl 2012-06-13 18:58:09 UTC
I've done a bunch more testing and clean up and have a new diff/patch 
which should be used instead of the one I initially attached to the PR:

http://www.ateamsystems.com/software/dist/couchdb-port-1.1.0-to-1.2.0.diff

It includes the alert to consult UPDATING and a bunch of other 
fixes/tweaks.  The Makefile needs to have <date> swapped in for the 
UPDATING dateline.

Here is some sample text for the UPDATING entry:

20120613:
   AFFECTS: users of database/couchdb
   AUTHOR: adams-ports@ateamsystems.com

   CouchDB has been updated to 1.2.0.  In the previous version of
   the port (1.1.0) there is an error in the pkg-plist which will
   cause /usr/local/etc/couchdb/local.ini to be removed.  This file
   contains CouchDB configuration information and admin accounts.

   To avoid this an interlock was placed when building the 1.2.0
   port if local.ini exists and local.ini.sample does not (new
   in 1.2.0).

   If you are upgrading from a previous version of the CouchDB
   port copy your local.ini file to a safe location before
   uninstalling the old port:

   # cp /usr/local/etc/couchdb/local.ini 
/usr/local/etc/couchdb/local.ini.bak

   Once you have installed the new port copy it back:

   # cp /usr/local/etc/couchdb/local.ini.bak 
/usr/local/etc/couchdb/local.ini

   Additionally the default database directory is now
   /var/db/couchdb (formerly /var/lib/couchdb), you may need to
   move your DB files to the new location if you are not manually
   specifying a location in local.ini.

-- 
Adam Strohl
http://www.ateamsystems.com/
Comment 3 Adam Strohl 2012-06-13 19:03:47 UTC
Doh.  Updated content: changed cp to mv, because otherwise the IGNORE 
statement in the Makefile will still trigger.  Check the example 
commands and feel free to trim/edit.

20120613:
   AFFECTS: users of database/couchdb
   AUTHOR: adams-ports@ateamsystems.com

   CouchDB has been updated to 1.2.0.  In the previous version of
   the port (1.1.0) there is an error in the pkg-plist which will
   cause /usr/local/etc/couchdb/local.ini to be removed.  This file
   contains CouchDB configuration information and admin accounts.

   To avoid this an interlock was placed when building the 1.2.0
   port if local.ini exists and local.ini.sample does not (new
   in 1.2.0).

   If you are upgrading from a previous version of the CouchDB
   port move your local.ini file to a safe location before
   uninstalling the old port:

   # mv /usr/local/etc/couchdb/local.ini 
/usr/local/etc/couchdb/local.ini.bak

   With local.ini out of the way 'make build' will work:

   # cd /usr/ports/database/couchdb && make build deinstall install

   Once you have installed the new port move it back:

   # mv /usr/local/etc/couchdb/local.ini.bak 
/usr/local/etc/couchdb/local.ini

   Additionally the default database directory is now
   /var/db/couchdb (formerly /var/lib/couchdb), you may need to
   move your DB files to the new location if you are not manually
   specifying a location in local.ini.


-- 
Adam Strohl
http://www.ateamsystems.com/
Comment 4 Edwin Groothuis freebsd_committer freebsd_triage 2012-06-17 13:53:36 UTC
Maintainer of databases/couchdb,

Please note that PR ports/168923 has just been submitted.

If it contains a patch for an upgrade, an enhancement or a bug fix
you agree on, reply to this email stating that you approve the patch
and a committer will take care of it.

The full text of the PR can be found at:
    http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/168923

-- 
Edwin Groothuis via the GNATS Auto Assign Tool
edwin@FreeBSD.org
Comment 5 Edwin Groothuis freebsd_committer freebsd_triage 2012-06-17 13:53:38 UTC
State Changed
From-To: open->feedback

Awaiting maintainers feedback (via the GNATS Auto Assign Tool)
Comment 6 Chris Rees 2012-06-17 13:57:23 UTC
I've replaced the IGNORE with a pre-everything target that also checks
if an older version is installed; otherwise the IGNORE will be
triggered if 1.2.0 is deinstalled (.sample will be removed, .ini will
not; ignore triggered false alarm-- I should have thought of that when
suggesting it before!).

I've also OPTIONSngified it, and fixed a few minor nits, and used
pkg-message.in to properly substitute PREFIX for package installation.

Great patch to work from though, thanks!

Till, is it OK?

http://www.bayofrum.net/~crees/patches/couchdb-1.2.0.diff

Chris
Comment 7 dfilter service freebsd_committer freebsd_triage 2012-07-02 22:31:37 UTC
crees       2012-07-02 21:31:27 UTC

  FreeBSD ports repository

  Modified files:
    databases/couchdb    Makefile distinfo pkg-deinstall 
                         pkg-install pkg-plist 
    databases/couchdb/files couchdb.in 
  Added files:
    databases/couchdb/files pkg-message.in 
  Removed files:
    databases/couchdb    pkg-message 
  Log:
  - Update to 1.2.0
  
  - OPTIONSngify
  
  - Error out on build if older version installed with config file present; this
    must be backed up or it will be lost on deinstall.
  
  - Shift default DB storage location from /var/lib/couchdb to
    /var/db/couchdb to make it consistent with other DB storage engine ports
    which use /var/db as their base (eg; mySQL).
  
  PR:             ports/168923
  Submitted by:   Adam Strohl <adams-ports@ateamsystems.com>
  Approved by:    maintainer timeout (till@php.net, >14 days)
  
  Revision  Changes    Path
  1.21      +35 -11    ports/databases/couchdb/Makefile
  1.8       +2 -2      ports/databases/couchdb/distinfo
  1.11      +3 -1      ports/databases/couchdb/files/couchdb.in
  1.1       +30 -0     ports/databases/couchdb/files/pkg-message.in (new)
  1.2       +2 -2      ports/databases/couchdb/pkg-deinstall
  1.4       +3 -3      ports/databases/couchdb/pkg-install
  1.2       +0 -8      ports/databases/couchdb/pkg-message (dead)
  1.7       +85 -45    ports/databases/couchdb/pkg-plist
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
Comment 8 dfilter service freebsd_committer freebsd_triage 2012-07-02 22:36:57 UTC
crees       2012-07-02 21:36:44 UTC

  FreeBSD ports repository

  Modified files:
    .                    UPDATING 
    databases/couchdb    Makefile 
  Log:
  Document upgrade procedure for couchdb to avoid loss of local.ini file.
  
  Correct date in Makefile's reference to UPDATING entry.
  
  PR:             ports/168923
  
  Revision  Changes    Path
  1.1261    +13 -1     ports/UPDATING
  1.22      +1 -1      ports/databases/couchdb/Makefile
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
Comment 9 Chris Rees freebsd_committer freebsd_triage 2012-07-02 22:37:41 UTC
State Changed
From-To: feedback->closed

Committed. Thanks!