Bug 181014

Summary: mail/roundcube not functional after portupgrade
Product: Ports & Packages Reporter: understudy
Component: Individual Port(s)Assignee: Alex Dupre <ale>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   

Description understudy 2013-08-04 14:30:00 UTC
After a recent portupgrade roundcube now only shows a white page when attempting to access it via the browser Looking at the error logs for roundcube this error shows. 

[04-Aug-2013 11:49:06 +0000]: DB Error: Configuration error. Unsupported database driver:  in /usr/local/www/roundcube/program/lib/Roundcube/rcube_db.php on line 75 (GET /roundcube/)

The packages currently installed:

apache22-2.2.25     Version 2.2.x of Apache web server with prefork MPM.
apr-1.4.8.1.5.2     Apache Portability Library
arc-5.21p           Create & extract files from DOS .ARC files
arj-3.10.22_4       Open-source ARJ
autoconf-2.69       Automatically configure source code on many Un*x platforms
autoconf-wrapper-20130530 Wrapper script for GNU autoconf
automake-1.14       GNU Standards-compliant Makefile generator
automake-wrapper-20130530 Wrapper script for GNU automake
bash-4.2.45         The GNU Project's Bourne Again SHell
bigreqsproto-1.1.2  BigReqs extension headers
bison-2.7.1,1       A parser generator from FSF, (mostly) compatible with Yacc
boehm-gc-7.1        Garbage collection and memory leak detection for C and C++
ca_root_nss-3.15.1  The root certificate bundle from the Mozilla Project
cabextract-1.4      Program to extract Microsoft cabinet (.CAB) files
cclient-2007f,1     Mark Crispin's C-client mail access routines
clamav-0.97.8       Command line virus scanner written entirely in C
cmake-2.8.11.2      Cross-platform Makefile generator
cmake-modules-2.8.11.2 Modules and Templates for CMake
curl-7.31.0         Non-interactive tool to get files from FTP, GOPHER, HTTP(S)
db41-4.1.25_4       The Berkeley DB package, revision 4.1
db42-4.2.52_5       The Berkeley DB package, revision 4.2
db47-4.7.25.4       The Berkeley DB package, revision 4.7
dialog4ports-0.1.5_1 Console Interface to configure ports
docbook-1.4_1       Meta-port for the different versions of the DocBook DTD
docbook-4.1_4       V4.1 of the DocBook DTD, designed for technical documentati
docbook-4.2         V4.2 of the DocBook DTD, designed for technical documentati
docbook-4.3         DocBook/SGML DTD V4.3, designed for technical documentation
docbook-4.4_2       DocBook/SGML DTD V4.4, designed for technical documentation
docbook-4.5_2       DocBook/SGML DTD V4.5, designed for technical documentation
docbook-5.0_1       DocBook 5.0, designed for technical documentation
docbook-sk-4.1.2_4  XML version of the DocBook DTD version controlled for Scrol
docbook-xml-4.2_1   XML version of the DocBook DTD
docbook-xml-4.3     DocBook/XML DTD V4.3, designed for technical documentation
docbook-xml-4.4_1   DocBook/XML DTD V4.4, designed for technical documentation
docbook-xml-4.5     DocBook/XML DTD V4.5, designed for technical documentation
docbook-xsl-1.76.1_1 XSL DocBook stylesheets
dovecot-1.2.17      Secure and compact IMAP and POP3 servers
expat-2.1.0         XML 1.0 parser written in C
file-5.14           Utility to determine file type
fontconfig-2.10.93,1 An XML-based font configuration API for X Windows
freetype2-2.4.12_1  A free and portable TrueType font rendering engine
freeze-2.5_2        Compression program - often used in QNX
gdbm-1.10           GNU database manager
getopt-1.1.5        A getopt(1) replacement that supports GNU-style long option
gettext-0.18.3      GNU gettext package
giflib-nox11-4.2.1_2 Tools and library routines for working with GIF images
gifsicle-1.71       Manipulates GIF images and animations
gmake-3.82_1        GNU version of 'make' utility
gnupg-2.0.20_1      The GNU Privacy Guard
gocr-0.49_1         An OCR (Optical Character Recognition) program
help2man-1.43.3     Automatically generating simple manual pages from program o
icu-50.1.2          International Components for Unicode (from IBM)
inputproto-2.3      Input extension headers
iso8879-1986_3      Character entity sets from ISO 8879:1986 (SGML)
jasper-1.900.1_12   An implementation of the codec specified in the JPEG-2000 s
jbigkit-1.6         Lossless compression for bi-level images such as scanned pa
jpeg-8_4            IJG's jpeg compression utilities
kbproto-1.0.6       KB extension headers
leptonica-1.69      C library for efficient image processing and image analysis
lha-1.14i_6         Archive files using LZSS and Huffman compression (.lzh file
libICE-1.0.8,1      Inter Client Exchange library for X11
libSM-1.2.1,1       Session Management library for X11
libX11-1.6.0,1      X11 library
libXau-1.0.8        Authentication Protocol library for X11
libXdmcp-1.1.1      X Display Manager Control Protocol library
libXft-2.3.1        Client-sided font API for X applications
libXrender-0.9.8    X Render extension library
libassuan-2.0.3     IPC library used by GnuPG and gpgme
libcheck-0.9.10     A unit test framework for C
libexecinfo-1.1_3   A library for inspecting program's backtrace
libffi-3.0.13       Foreign Function Interface
libgcrypt-1.5.2     General purpose crypto library based on code used in GnuPG
libgpg-error-1.12   Common error values for all GnuPG components
libiconv-1.14_1     A character set conversion library
libksba-1.3.0       KSBA is an X.509 Library
libltdl-2.4.2       System independent dlopen wrapper
libmcrypt-2.5.8     Multi-cipher cryptographic library (used in PHP)
libpaper-1.1.24_1   A library providing routines for paper size management
libpthread-stubs-0.3_3 This library provides weak aliases for pthread functions
libtool-2.4.2       Generic shared library support script
libxcb-1.9.1        The X protocol C-language Binding (XCB) library
libxml2-2.8.0_2     XML parser library for GNOME
libxslt-1.1.28_1    The XSLT C library for GNOME
libyaml-0.1.4_2     A YAML 1.1 parser and emitter written in C
lua-5.1.5_5         Small, compilable scripting language providing easy access 
m4-1.4.16_1,1       GNU m4
maia-1.0.3.r1575_3  Web-based management system based on amavisd-new and SpamAs
mysql-client-5.5.32 Multithreaded SQL database (client)
mysql-server-5.5.32 Multithreaded SQL database (server)
netpbm-10.35.89     Toolkit for conversion of images between different formats
nmap-6.25_1         Port scanning utility for large networks
ocrad-0.21_1        OCR program implemented as filter
oniguruma-4.7.1     A BSDL Regular Expressions library compatible with POSIX/GN
p5-Acme-Damn-0.05   Unblessing perl objects
p5-AppConfig-1.66   A Perl module for reading configuration files
p5-Archive-Zip-1.30_1 Perl module to create, manipulate, read, and write Zip arch
p5-Attribute-Handlers-0.93 Simpler definition of attribute handlers
p5-Authen-NTLM-1.09 An NTLM authentication module
p5-BerkeleyDB-0.52  Perl5 interface to the Berkeley DB package
p5-Convert-BinHex-1.119 Perl module to extract data from Macintosh BinHex files
p5-Convert-TNEF-0.18 Perl module to read TNEF files
p5-Convert-UUlib-1.40,1 Perl5 interface to the uulib library (a.k.a. uudeview/uuenv
p5-Crypt-OpenSSL-Bignum-0.04 OpenSSL's multiprecision integer arithmetic
p5-Crypt-OpenSSL-RSA-0.28 Perl5 module to RSA encode and decode strings using OpenSSL
p5-Crypt-OpenSSL-Random-0.04 Perl5 interface to the OpenSSL pseudo-random number generat
p5-DBD-mysql-4.023  MySQL driver for the Perl5 Database Interface (DBI)
p5-DBI-1.628        The perl5 Database Interface.  Required for DBD::* modules
p5-Data-UUID-1.218  Generate Globally/Universally Unique Identifiers (GUIDs/UUI
p5-Devel-Symdump-2.1000 Perl5 module that dumps symbol names or the symbol table
p5-Digest-HMAC-1.03 Perl5 interface to HMAC Message-Digest Algorithms
p5-Digest-SHA1-2.13 Perl interface to the SHA-1 Algorithm
p5-Encode-Detect-1.01 An Encode::Encoding subclass that detects the encoding of d
p5-Encode-Locale-1.03 Determine the locale encoding
p5-Error-0.17020    Perl module to provide Error/exception support for perl: Er
p5-ExtUtils-CBuilder-0.2802.05,1 Compile and link C code for Perl modules
p5-File-Listing-6.04 Parse directory listings
p5-FreezeThaw-0.50.01 A module for converting Perl structures to strings and back
p5-FuzzyOcr-devel-3.6.0_5 Plugin for SpamAssassin which scans image attachments for s
p5-Geography-Countries-2009041301 Handle ISO-3166 country codes
p5-HTML-Parser-3.71 Perl5 module for parsing HTML documents
p5-HTML-Tagset-3.20 Some useful data table in parsing HTML
p5-HTTP-Cookies-6.01 HTTP Cookie jars
p5-HTTP-Daemon-6.01 Simple HTTP server class
p5-HTTP-Date-6.02   Conversion routines for the HTTP protocol date formats
p5-HTTP-Message-6.06_2 Representation of HTTP style messages
p5-HTTP-Negotiate-6.01 Implementation of the HTTP content negotiation algorithm
p5-IO-HTML-1.00     Open an HTML file with automatic charset detection
p5-IO-Multiplex-1.13 IO::Multiplex - Manage IO on many file handles
p5-IO-Socket-INET6-2.69 Perl module with object interface to AF_INET6 domain socket
p5-IO-Socket-IP-0.22 Drop-in replacement for IO::Socket::INET supporting IPv4 an
p5-IO-Socket-SSL-1.953 Perl5 interface to SSL sockets
p5-IO-stringy-2.110 Perl5 module for using IO handles with non-file objects
p5-IP-Country-2.28  Fast lookup of country codes from IP addresses
p5-LWP-MediaTypes-6.02 Guess media type for a file or a URL
p5-List-MoreUtils-0.33 Provide the stuff missing in List::Util
p5-Locale-gettext-1.05_3 Message handling functions
p5-MIME-Tools-5.504,2 A set of perl5 modules for MIME
p5-MLDBM-2.05       Store multi-level hash structure in single level tied hash
p5-MLDBM-Sync-0.30  MLDBM::Sync - safe concurrent access to MLDBM databases
p5-Mail-DKIM-0.40   Perl5 module to process and/or create DKIM email
p5-Mail-DomainKeys-1.0_1 Perl implementation of DomainKeys
p5-Mail-SPF-2.007_2 Reference implementation of the RFC 4408 SPF protocol
p5-Mail-SpamAssassin-3.3.2_8 A highly efficient mail filter for identifying spam
p5-Mail-Tools-2.12  Perl5 modules for dealing with Internet e-mail messages
p5-Module-Build-0.4005 Build and install Perl modules
p5-Net-CIDR-Lite-0.21 Perl extension for merging IPv4 or IPv6 CIDR addresses
p5-Net-DNS-0.72     Perl5 interface to the DNS resolver, and dynamic updates
p5-Net-DNS-Resolver-Programmable-0.003 Programmable DNS resolver for off-line testing
p5-Net-HTTP-6.06    Low-level HTTP client
p5-Net-SSLeay-1.55  Perl5 interface to SSL
p5-Net-Server-2.007 A configurable base class for writing internet servers in P
p5-NetAddr-IP-4.069_1 Perl module for working with IP addresses and blocks thereo
p5-Socket-2.010     Networking constants and support functions
p5-Socket6-0.23     IPv6 related part of the C socket.h defines and structure m
p5-String-Approx-3.27 Perl extension for approximate matching (fuzzy matching)
p5-Sub-Uplevel-0.2400 Sub::Uplevel - apparently run a function in a higher stack 
p5-Sys-SigAction-0.17 Perl extension for Consistent Signal Handling
p5-Template-Toolkit-2.24 Extensive Toolkit for template processing
p5-Test-Exception-0.32 Test::Exception - test functions for exception based code
p5-Text-CSV-1.32    Composition and decomposition of comma-separated values
p5-TimeDate-2.30_1,1 Perl5 module containing a better/faster date parser for abs
p5-URI-1.60         Perl5 interface to Uniform Resource Identifier (URI) refere
p5-Unix-Syslog-1.1  Perl5 interface to the UNIX syslog(3) calls
p5-WWW-RobotRules-6.02 Database of robots.txt-derived permissions
p5-forks-0.34       Drop-in replacement for Perl threads using fork()
p5-libwww-6.05      Perl5 library for WWW access
p5-version-0.99.02  Perl extension for Version Objects
p7zip-9.20.1        File archiver with high compression ratio
pcre-8.33           Perl Compatible Regular Expressions library
pear-1.9.4_1        PEAR framework for PHP
pear-Auth-1.6.4     PEAR class for creating an authentication system
pear-Auth_SASL-1.0.6 PEAR abstraction of various SASL mechanism responses
pear-DB-1.7.14,1    PEAR Database Abstraction Layer
pear-Log-1.12.7     PEAR logging utilities
pear-Mail_Mime-1.8.6_1,2 PEAR classes to create and decode MIME messages
pear-Mail_mimeDecode-1.5.5 Provides a class to decode mime messages
pear-Net_SMTP-1.6.1 PEAR class that provides an implementation of the SMTP prot
pear-Net_Socket-1.0.10 PEAR Network Socket Interface
pear-Pager-2.4.8    PEAR data paging class
pecl-intl-3.0.0     A PECL extension to support Internationalization(ICU)
perl-5.14.4         Practical Extraction and Report Language
php5-5.4.17         PHP Scripting Language
php5-bcmath-5.4.17  The bcmath shared extension for php
php5-ctype-5.4.17   The ctype shared extension for php
php5-dom-5.4.17     The dom shared extension for php
php5-gettext-5.4.17 The gettext shared extension for php
php5-hash-5.4.17    The hash shared extension for php
php5-iconv-5.4.17   The iconv shared extension for php
php5-imap-5.4.17    The imap shared extension for php
php5-json-5.4.17    The json shared extension for php
php5-mbstring-5.4.17 The mbstring shared extension for php
php5-mcrypt-5.4.17  The mcrypt shared extension for php
php5-mysql-5.4.17   The mysql shared extension for php
php5-mysqli-5.4.17  The mysqli shared extension for php
php5-pdo-5.4.17     The pdo shared extension for php
php5-pdo_mysql-5.4.17 The pdo_mysql shared extension for php
php5-pdo_sqlite-5.4.17 The pdo_sqlite shared extension for php
php5-posix-5.4.17   The posix shared extension for php
php5-session-5.4.17 The session shared extension for php
php5-simplexml-5.4.17 The simplexml shared extension for php
php5-sockets-5.4.17 The sockets shared extension for php
php5-sqlite3-5.4.17 The sqlite3 shared extension for php
php5-tokenizer-5.4.17 The tokenizer shared extension for php
php5-wddx-5.4.17    The wddx shared extension for php
php5-xml-5.4.17     The xml shared extension for php
php5-xmlreader-5.4.17 The xmlreader shared extension for php
php5-xmlrpc-5.4.17  The xmlrpc shared extension for php
php5-xmlwriter-5.4.17 The xmlwriter shared extension for php
php5-zip-5.4.17     The zip shared extension for php
pkgconf-0.9.2_1     Utility to help to configure compiler and linker flags
png-1.5.17          Library for manipulating PNG images
portaudit-0.6.1     Checks installed ports against a list of security vulnerabi
portmaster-3.17.1   Manage your ports without external databases or languages
portupgrade-2.4.11,2 FreeBSD ports/packages administration and management tool s
postfix-2.10.0,1    Secure alternative to widely-used Sendmail
postfixadmin-2.3.6  PHP web-based management tool for Postfix virtual domains a
pth-2.0.7           GNU Portable Threads
python27-2.7.5_1    Interpreted object-oriented programming language
razor-agents-2.84   A distributed, collaborative, spam detection and filtering 
renderproto-0.11.1  RenderProto protocol headers
roundcube-0.9.2,1   Fully skinnable XHTML/CSS webmail written in PHP
rpm2cpio-1.3_1      Convert .rpm files for extraction with /usr/bin/cpio, needs
ruby-1.8.7.371,1    An object-oriented interpreted scripting language
ruby-1.9.3.448,1    An object-oriented interpreted scripting language
ruby18-bdb-0.6.6_1  Ruby interface to Oracle Berkeley DB revision 2 or later
ruby19-bdb-0.6.6_1  Ruby interface to Oracle Berkeley DB revision 2 or later
ruby19-date2-4.0.19 An alternative date class for Ruby
shc-3.8.9           A generic script compiler
smarty-2.6.27       The PHP compiling template engine
sqlite3-3.7.17_1    SQL database engine in a C library
tcl-8.5.14_1        Tool Command Language
tesseract-3.02.02_1 Commercial quality open source OCR engine
tiff-4.0.3          Tools and library routines for working with TIFF images
tk-8.5.14_1         Graphical toolkit for Tcl
tk-wrapper-1.1_1    Shell wrapper for wish (Tk)
unrar-4.20_1,5      Extract, view & test RAR archives
unzip-6.0_1         List, test, and extract compressed files in a ZIP archive
unzoo-4.4_2         A zoo archive extractor
w3m-0.5.3_1         A pager/text-based WWW browser
webp-0.1.3_1        Google WebP image format conversion tool
xcb-proto-1.8       The X protocol C-language Binding (XCB) protocol
xcmiscproto-1.2.2   XCMisc extension headers
xextproto-7.2.1     XExt extension headers
xf86bigfontproto-1.2.0 XFree86-Bigfont extension headers
xmlcatmgr-2.2       SGML and XML catalog manager
xmlcharent-0.3_2    XML character entities
xmlto-0.0.25        Front-end to an XSL toolchain
xorg-macros-1.17    X.Org development aclocal macros
xproto-7.0.24       X11 protocol headers
xtrans-1.2.7        Abstract network code for X
zoo-2.10.1_3        Manipulate archives of files in compressed form

How-To-Repeat: Do a portupgrade
Comment 1 understudy 2013-08-04 15:15:10 UTC
I am adding my db.inc.php for more complete information.

My db.inc.php file

<?php

/*
  +-----------------------------------------------------------------------+
  | Configuration file for database access                                |
  | |
  | This file is part of the Roundcube Webmail client                     |
  | Copyright (C) 2005-2012, The Roundcube Dev Team                       |
  | |
  | Licensed under the GNU General Public License version 3 or            |
  | any later version with exceptions for skins & plugins.                |
  | See the README file for a full license statement.                     |
  | |
  +-----------------------------------------------------------------------+

*/

$rcmail_config = array();

// PEAR database DSN for read/write operations
// format is db_provider://user:password@host/database
// For examples see 
http://pear.php.net/manual/en/package.database.mdb2.intro-ds
// currently supported db_providers: mysql, mysqli, pgsql, sqlite, mssql 
or sqls

$rcmail_config['db_dsnw'] = 
'mysql://roundcube:example@unix(/tmp/mysql.sock)/r
// postgres example: 'pgsql://roundcube:pass@localhost/roundcubemail';
// Warning: for SQLite use absolute path in DSN:
// sqlite example: 'sqlite:////full/path/to/sqlite.db?mode=0646';

// PEAR database DSN for read only operations (if empty write database 
will be u
// useful for database replication
$rcmail_config['db_dsnr'] = '';

// use persistent db-connections
// beware this will not "always" work as expected
// see: http://www.php.net/manual/en/features.persistent-connections.php
$rcmail_config['db_persistent'] = FALSE;

// you can define specific table names used to store webmail data
$rcmail_config['db_table_users'] = 'users';
$rcmail_config['db_table_identities'] = 'identities';
$rcmail_config['db_table_contacts'] = 'contacts';
$rcmail_config['db_table_contactgroups'] = 'contactgroups';
$rcmail_config['db_table_contactgroupmembers'] = 'contactgroupmembers';
$rcmail_config['db_table_session'] = 'session';
$rcmail_config['db_table_cache'] = 'cache';
$rcmail_config['db_table_cache_index'] = 'cache_index';
$rcmail_config['db_table_cache_thread'] = 'cache_thread';
$rcmail_config['db_table_cache_messages'] = 'cache_messages';
$rcmail_config['db_table_dictionary'] = 'dictionary';
$rcmail_config['db_table_searches'] = 'searches';
$rcmail_config['db_table_system'] = 'system';

// you can define specific sequence names used in PostgreSQL
$rcmail_config['db_sequence_users'] = 'user_ids';
$rcmail_config['db_sequence_identities'] = 'identity_ids';
$rcmail_config['db_sequence_contacts'] = 'contact_ids';
$rcmail_config['db_sequence_contactgroups'] = 'contactgroups_ids';
$rcmail_config['db_sequence_searches'] = 'search_ids';


// end db config file
Comment 2 understudy 2013-08-04 15:28:35 UTC
More information.

Here is what is in rcube_db.php on line 75.

70.        $driver = isset($driver_map[$driver]) ? $driver_map[$driver] 
: $driver;
71.        $class  = "rcube_db_$driver";
72.
73.        if (!$driver || !class_exists($class)) {
74.            rcube::raise_error(array('code' => 600, 'type' => 'db',
75.                'line' => __LINE__, 'file' => __FILE__,
76.                'message' => "Configuration error. Unsupported 
database driver:
77.                true, true);
Comment 3 Edwin Groothuis freebsd_committer freebsd_triage 2013-08-04 16:11:10 UTC
Responsible Changed
From-To: freebsd-ports-bugs->ale

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 4 understudy 2013-08-30 23:22:10 UTC
A recent port upgrade to the following version:
roundcube-0.9.3_1,1
does not resolve the issue.

Same result. This port is still not functional.
Comment 5 tiktokoptik 2013-09-25 03:43:29 UTC
This was solved for me by either

1) creating a symlink to the roundcubemail conf files if they are outside
the roundcube dir (e.g. to /etc/roundcube)
2) make sure the conf files and the dir can be read by the web server (e.g.
chown to nginx or www)
Comment 6 understudy 2013-09-26 13:58:10 UTC
On 09/24/13 22:43, Mikk Mekk wrote:
> This was solved for me by either
>
> 1) creating a symlink to the roundcubemail conf files if they are 
> outside the roundcube dir (e.g. to /etc/roundcube)
> 2) make sure the conf files and the dir can be read by the web server 
> (e.g. chown to nginx or www)
Hi Mikk,

I assume you are talking about these files:

/usr/local/www/roundcube/config/db.inc.php
/usr/local/www/roundcube/config/db.inc.php.dist

Trying to put them with a symlink to /etc/roundcube will fail since:

postal# cd /etc/roundcube
/etc/roundcube: No such file or directory.

Your option #2

postal# ls -al
total 104
drwxr-xr-x   2 root  wheel    512 Aug 30 18:04 .
drwxr-xr-x  11 root  wheel    512 Aug 30 18:14 ..
-r--r--r--   1 root  wheel     31 Aug 21 13:26 .htaccess
-rw-------   1 root  wheel   2906 Jun  1 16:34 db.inc.php
-r--r--r--   1 root  wheel   2893 Aug 21 13:26 db.inc.php.dist
-rw-------   1 root  wheel  38411 Jun  1 16:38 main.inc.php
-r--r--r--   1 root  wheel  38672 Aug 30 18:04 main.inc.php.dist
-r--r--r--   1 root  wheel   2731 Aug 21 13:26 mimetypes.php
postal# chown www db.inc.php
postal# chown www main.inc.php
postal# ls -al
total 104
drwxr-xr-x   2 root  wheel    512 Aug 30 18:04 .
drwxr-xr-x  11 root  wheel    512 Aug 30 18:14 ..
-r--r--r--   1 root  wheel     31 Aug 21 13:26 .htaccess
-rw-------   1 www   wheel   2906 Jun  1 16:34 db.inc.php
-r--r--r--   1 root  wheel   2893 Aug 21 13:26 db.inc.php.dist
-rw-------   1 www   wheel  38411 Jun  1 16:38 main.inc.php
-r--r--r--   1 root  wheel  38672 Aug 30 18:04 main.inc.php.dist
-r--r--r--   1 root  wheel   2731 Aug 21 13:26 mimetypes.php

This option appears to have worked.

Now I guess someone who can write code better than I needs to submit a 
patch.

Sincerely,

Brendhan
Comment 7 Alex Dupre freebsd_committer freebsd_triage 2014-02-11 13:46:02 UTC
State Changed
From-To: open->closed

Permission issue not related to port.