From james.gates@sun.com Thu May  8 08:51:30 2008
Received: from sunmail4.singapore.sun.com (sunmail4.Singapore.Sun.COM [129.158.71.19])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id m48FpTCb012821
	for <LSARC-ext@sac.sfbay.sun.com>; Thu, 8 May 2008 08:51:30 -0700 (PDT)
Received: from nwk-avmta-2.sfbay.sun.com (nwk-avmta-2.SFBay.Sun.COM [129.145.155.6])
	by sunmail4.singapore.sun.com (8.13.4+Sun/8.13.3/ENSMAIL,v2.2) with ESMTP id m48Fp5rd008120
	for <@sunmail2sca.sfbay.sun.com:lsarc-ext@sun.com>; Thu, 8 May 2008 23:51:28 +0800 (SGT)
Received: from pmxchannel-daemon.nwk-avmta-2.sfbay.sun.com by
 nwk-avmta-2.sfbay.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0K0K00G2P41RCT00@nwk-avmta-2.sfbay.sun.com> for lsarc-ext@sun.com
 (ORCPT lsarc-ext@sun.com); Thu, 08 May 2008 08:51:27 -0700 (PDT)
Received: from dm-uk-02.uk.sun.com ([129.156.101.196])
 by nwk-avmta-2.sfbay.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0K0K00B4U41MHJA0@nwk-avmta-2.sfbay.sun.com> for
 lsarc-ext@sun.com (ORCPT lsarc-ext@sun.com); Thu,
 08 May 2008 08:51:23 -0700 (PDT)
Received: from serinus.UK.Sun.COM (serinus.UK.Sun.COM [129.156.173.208])
	by dm-uk-02.uk.sun.com (8.13.7+Sun/8.13.7/ENSMAIL,v2.2)
 with ESMTP id m48FpL8p027398; Thu, 08 May 2008 16:51:21 +0100 (BST)
Received: from [192.168.1.100] (vpn-129-150-65-41.East.Sun.COM [129.150.65.41])
	by serinus.UK.Sun.COM (8.13.7+Sun/8.13.7/CTE 3.0)
 with ESMTP id m48FopnZ009386; Thu, 08 May 2008 16:51:01 +0100 (BST)
Date: Thu, 08 May 2008 11:50:09 -0400
From: James Gates <james.gates@sun.com>
Subject: LSARC/2008/303 Integrate PhpPgAdmin 4.2 Integration into Nevada
To: lsarc-ext@sun.com
Cc: Thavamuni.Alagu@sun.com
Message-id: <48232131.4000800@sun.com>
MIME-version: 1.0
Content-type: multipart/mixed; boundary="Boundary_(ID_+jmupyP+aQTrG6BsFtow9g)"
X-Accept-Language: en-us, en
X-PMX-Version: 5.4.1.325704
User-Agent: Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.7.13) Gecko/20060509
Status: RO
Content-Length: 15107

This is a multi-part message in MIME format.

--Boundary_(ID_+jmupyP+aQTrG6BsFtow9g)
Content-type: text/plain; charset=us-ascii; format=flowed
Content-transfer-encoding: 7BIT

I am sponsoring this fast-track on behalf of Thavamuni Alagu. The timer 
expires 05/16/08. Attached is a copy of the proposal, which can also be 
found in the case directory. A text version of the phppgadmin(1M) man 
page is located in the materials subdirectory.

It qualifies for micro/patch release binding (although the project team 
only intend to integrate into Nevada).



--Boundary_(ID_+jmupyP+aQTrG6BsFtow9g)
Content-type: text/plain; name=phppg1pg.txt
Content-transfer-encoding: 7BIT
Content-disposition: inline; filename=phppg1pg.txt


Template Version: @(#)onepager.txt 1.35 07/11/07 SMI
Copyright 2008 Sun Microsystems

1. Introduction

   1.1. Project/Component Working Name:
        PhpPgAdmin 4.2 Integration into Nevada

   1.2. Name of Document Author/Supplier: 
        Thavamuni Alagu

   1.3. Date of This Document: 
        26 Mar 2008
    
   1.4. Name of Major Document Customer(s)/Consumer(s):
        1.4.1. The Community you expect to review your project:
               Webstack
        1.4.2. The ARC(s) you expect to review your project:
               LSARC

   1.5. Email Aliases:
        1.5.2. Responsible Engineer: thavamuni.alagu@sun.com

        1.5.4. Interest List:
               webstack-discuss@opensolaris.org
               databases-discuss@opensolaris.org

2. Project Summary
   2.1. Project Description:

        phppgadmin is a web-based administration tool for PostgreSQL.
        This project integrates this into Opensolaris.
    
   2.2. Risks and Assumptions:

        The latest released version for phpPgAdmin is 4.2.

        The phppgadmin 4.2 supports all recent versions of postgres including
        the latest Postgres 8.3 targetted for Nevada. This is important
        to integrate this latest version along with Postgres8.3 in Nevada.
        The earlier released version 4.1.3 does not support Postgres 8.3.

4. Technical Description:

    4.1. Details:

        phpPgAdmin is a opensource web-based administration tool for PostgreSQL
        See http://sourceforge.net/projects/phppgadmin for more information.

        PhpPgAdmin distribution includes collection of php files. It does not 
        need compilation for particular platform. The distribution is available
        for download from the web in .bz2, .gz, .zip formats.

        This would be configurable with the default apache server and
        PHP that is shipped with Nevada. Note that this depends
        on the PHP extension pgsql.so that is by default available and shipped
        with PHP. The source for PHP (including this pgsql.so extension) is 
        http://www.php.net

    4.5. Interfaces

        4.5.1. Interface Stability

        The phppgadmin is designed to support all recent versions of PostgreSQL.
        For example, the phppgadmin 4.2 is designed to support Postgres 7.*,
        8.1, 8.2 and 8.3 versions. Hence upgrading phppgadmin is usually 
        regarded as hassle free.

        4.5.2. Imported Interfaces

        NAME                           STABILITY       NOTES
        PHP5                           Uncommitted     PSARC/2007/168
        Apache2                        Uncommitted     PSARC/2004/676

        4.5.3. Exported Interfaces

        NAME                           STABILITY       NOTES

        SUNWphppgadminu                committed       Usr component
        SUNWphppgadminr                committed       Root component
        Files Layout within pkg        uncommitted

        One config file is delivered here:
              /etc/phppgadmin/config.inc.php
        This file is delivered into separate package SUNWphpgadminr

        A symbolic link /usr/postgres/phppgadmin/conf/config.inc.php
        is created to point to /etc/phppgadmin/config.inc.php

        All other files are delivered inside /usr/postgres/phppgadmin 
        directory.

        Package Name: SUNWphppgadminu  
        Content Layout:
.:
CREDITS              fulltext.php         redirect.php
DEVELOPERS           functions.js         reports.php
FAQ                  functions.php        robots.txt
HISTORY              groups.php           roles.php
INSTALL              help/                rules.php
LICENSE              help.php             schemas.php
TODO                 history.php          selenium/
TRANSLATORS          images/              sequences.php
aciur.js             index.php            servers.php
aggregates.php       indexes.js           sql/
all_db.php           indexes.php          sql.php
autocomplete.php     info.php             sqledit.php
browser.php          intro.php            tables.js
casts.php            lang/                tables.php
classes/             languages.php        tablespaces.php
colproperties.php    libraries/           tblproperties.php
conf/                links.js             themes/
constraints.php      login.php            triggers.php
conversions.php      logout.php           types.php
database.php         multiactionform.js   users.php
dataexport.php       opclasses.php        viewproperties.php
dataimport.php       operators.php        views.php
dbexport.php         out                  xloadtree/
display.php          plugin_slony.php
domains.php          privileges.php

./classes:
ArrayRecordSet.php   Reports.php          plugins/
Gui.php              class.select.php
Misc.php             database/

./classes/database:
ADODB_base.php   Postgres71.php   Postgres74.php   Postgres82.php
Connection.php   Postgres72.php   Postgres80.php   Postgres83.php
Postgres.php     Postgres73.php   Postgres81.php

./classes/plugins:
Plugin.php   Slony.php

./conf:
config.inc.php -> /etc/phppgadmin/config.inc.php
config.inc.php-dist

./help:
PostgresDoc70.php   PostgresDoc73.php   PostgresDoc81.php
PostgresDoc71.php   PostgresDoc74.php   PostgresDoc82.php
PostgresDoc72.php   PostgresDoc80.php   PostgresDoc83.php

./images:
themes/

./images/themes:
default/

./images/themes/default:
AddArguments.png              OfferedReplicationSet.png
Admin.png                     OfferedSubscription.png
Aggregate.png                 Open.png
Aggregates.png                Operator.png
AllUsers.png                  OperatorClass.png
AvailableReplicationSet.png   OperatorClasses.png
AvailableSubscription.png     Operators.png
Backup.png                    Paste.png
Cast.png                      Path.png
Casts.png                     Paths.png
CheckConstraint.png           PrimaryKey.png
Cluster.png                   Privileges.png
Column.png                    Processes.png
Columns.png                   Property.png
Constraints.png               RaiseArgument.png
Conversion.png                Record.png
Conversions.png               Records.png
Copy.png                      Redo.png
CorruptedDatabase.png         Refresh.png
Cut.png                       RemoveArgument.png
Database.png                  Replication.png
Databases.png                 ReplicationSets.png
Definition.png                Report.png
Delete.png                    Reports.png
DisabledJob.png               Restore.png
DisconnectedDatabase.png      Roles.png
DisconnectedServer.png        Rule.png
Domain.png                    Rules.png
Domains.png                   Save.png
EnableArgument.png            Schedule.png
Erase.png                     Schedules.png
Execute.png                   Schema.png
ExecuteSave.png               Schemas.png
Explain.png                   Search.png
Export.png                    Sequence.png
Favicon.ico                   Sequences.png
Filter.png                    Server.png
ForeignKey.png                Servers.png
Fts.png                       SqlEditor.png
FtsCfg.png                    Statistics.png
FtsDict.png                   Step.png
FtsParser.png                 Steps.png
Function.png                  Stop.png
Functions.png                 Subscriptions.png
GurusHint.png                 T.png
Help.png                      Table.png
Histories.png                 Tables.png
History.png                   Tablespace.png
I.png                         Tablespaces.png
Import.png                    Tminus.png
Index.png                     Tplus.png
Indexes.png                   Trigger.png
Introduction.png              TriggerFunction.png
Job.png                       TriggerFunctions.png
Jobs.png                      Triggers.png
Key.png                       Type.png
L.png                         Types.png
Language.png                  Undo.png
Languages.png                 UniqueConstraint.png
Listen.png                    User.png
Listens.png                   UserGroup.png
Lminus.png                    UserGroups.png
Loading.gif                   Users.png
LowerArgument.png             Variables.png
Lplus.png                     View.png
Node.png                      Views.png
Nodes.png                     blank.png
ObjectNotFound.png            title.png

./lang:
Makefile                 english.php              portuguese-br.php
afrikaans.php            french.php               portuguese-pt.php
arabic.php               german.php               recoded/
catalan.php              hebrew.php               romanian.php
chinese-sim.php          hungarian.php            russian.php
chinese-tr.php           italian.php              slovak.php
chinese-utf8-zh_CN.php   japanese.php             spanish.php
chinese-utf8-zh_TW.php   langcheck                swedish.php
convert.awk*             mongol.php               synch*
czech.php                php2po*                  translations.php
danish.php               po2php*                  turkish.php
dutch.php                polish.php               ukrainian.php

./lang/recoded:
README                   dutch.php                portuguese-br.php
afrikaans.php            english.php              portuguese-pt.php
arabic.php               french.php               romanian.php
catalan.php              german.php               russian.php
chinese-sim.php          hebrew.php               slovak.php
chinese-tr.php           hungarian.php            spanish.php
chinese-utf8-zh_CN.php   italian.php              swedish.php
chinese-utf8-zh_TW.php   japanese.php             turkish.php
czech.php                mongol.php               ukrainian.php
danish.php               polish.php

./libraries:
adodb/                 errorhandler.inc.php   lib.inc.php
decorator.inc.php      highlight.php

./libraries/adodb:
adodb-csvlib.inc.php     adodb-php4.inc.php       license.txt*
adodb-datadict.inc.php   adodb-time.inc.php       readme.txt*
adodb-error.inc.php      adodb.inc.php            toexport.inc.php
adodb-iterator.inc.php   drivers/                 tohtml.inc.php
adodb-lib.inc.php        lang/

./libraries/adodb/drivers:
adodb-postgres.inc.php     adodb-postgres7.inc.php
adodb-postgres64.inc.php   adodb-postgres8.inc.php

./libraries/adodb/lang:
adodb-ar.inc.php          adodb-de.inc.php          adodb-nl.inc.php
adodb-bg.inc.php          adodb-en.inc.php          adodb-pl.inc.php
adodb-bgutf8.inc.php      adodb-es.inc.php          adodb-pt-br.inc.php
adodb-ca.inc.php          adodb-esperanto.inc.php   adodb-ro.inc.php
adodb-cn.inc.php          adodb-fr.inc.php          adodb-ru1251.inc.php
adodb-cz.inc.php          adodb-hu.inc.php          adodb-sv.inc.php
adodb-da.inc.php          adodb-it.inc.php          adodb-uk1251.inc.php

./selenium:
Blank.html                  iedoc-core.xml
InjectedRemoteRunner.html   iedoc.xml
RemoteRunner.html           lib/
SeleniumLog.html            scripts/
TestPrompt.html             selenium-logo.png
TestRunner-splash.html      selenium-test.css
TestRunner.hta              selenium.css
TestRunner.html             tests/
domviewer/                  user-extensions.js
icons/                      xpath/

./selenium/domviewer:
butmin.gif              domviewer.css           selenium-domviewer.js
butplus.gif             domviewer.html

./selenium/icons:
all.png                 pause.png               step.png
continue.png            pause_disabled.png      step_disabled.png
continue_disabled.png   selected.png

./selenium/lib:
cssQuery/       prototype.js    scriptaculous/

./selenium/lib/cssQuery:
cssQuery-p.js   src/

./selenium/lib/cssQuery/src:
cssQuery-level2.js     cssQuery-standard.js
cssQuery-level3.js     cssQuery.js

./selenium/lib/scriptaculous:
builder.js         dragdrop.js        scriptaculous.js   unittest.js
controls.js        effects.js         slider.js

./selenium/scripts:
find_matching_child.js        selenium-browserbot.js
htmlutils.js                  selenium-browserdetect.js
injection.html                selenium-commandhandlers.js
injection_iframe.html         selenium-executionloop.js
js2html.js                    selenium-logging.js
narcissus-defs.js             selenium-remoterunner.js
narcissus-exec.js             selenium-testrunner.js
narcissus-parse.js            selenium-version.js
se2html.js                    user-extensions.js.sample
selenium-api.js               xmlextras.js

./selenium/tests:
README                 create_view.php        intro.php
TestSuite.html         domain.php             login.php
column.php             drop_database.php      logout.php
config.inc.php         drop_domain_fail.php   outro.php
constraints.php        drop_role_bad.php      sequence.php
create_database.php    drop_schema.php        table.php
create_schema.php      index.php

./selenium/xpath:
dom.js     misc.js    xpath.js

./sql:
reports-pgsql.sql

./themes:
default/

./themes/default:
global.css

./xloadtree:
xloadtree2.js   xtree2.js

    4.6. Doc Impact:

         No additional effort planned for this integration.
         The product comes with online help.
         The INSTALL, FAQ files already shipped at the top level directory 
         provides installation/configuration instructions.

    4.9. I18N/L10N Impact:
         No additional effort required.
         The product comes with translation support for wide variety
         of languages for displayed messages in web interface.
    
    4.10. Packaging & Delivery:
      See section 4.5 Interfaces.
    
    4.11. Security Impact:

        By default, the installation of this package does not activate
        any webserver (such as apache webserver) to include phppgadmin.
        One has to setup the webserver to activate this.
    
    4.12. Dependencies:

        Configuring this needs any PHP capable webserver.
        The PHP itself should be either configured and compiled with built-in 
        support with PostgreSQL support or should have dynamic PHP module
        pgsql.so available.

        The current apache version 2.2 shipped with Nevada is PHP capable. 
        The current PHP version 5.2.4 in Nevada includes pgsql.so module.

5. Reference Documents:

         Phppgadmin Home : http://sourceforge.net/projects/phppgadmin

6. Resources and Schedule:
   6.1. Projected Availability:
   6.5. ARC review type:  FastTrack


--Boundary_(ID_+jmupyP+aQTrG6BsFtow9g)--

From Jyri.Virkki@sun.com Thu May 15 21:07:30 2008
Received: from sunmail5.uk.sun.com (sunmail5.UK.Sun.COM [129.156.85.165])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id m4G47TMB011620
	for <LSARC-ext@sac.sfbay.sun.com>; Thu, 15 May 2008 21:07:29 -0700 (PDT)
Received: from nwk-avmta-2.sfbay.sun.com (nwk-avmta-2.SFBay.Sun.COM [129.145.155.6])
	by sunmail5.uk.sun.com (8.13.8+Sun/8.13.8/ENSMAIL,v2.2) with ESMTP id m4G47Qfx008160;
	Fri, 16 May 2008 05:07:27 +0100 (BST)
Received: from pmxchannel-daemon.nwk-avmta-2.sfbay.sun.com by
 nwk-avmta-2.sfbay.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0K0Y00I010SEVF00@nwk-avmta-2.sfbay.sun.com>; Thu,
 15 May 2008 21:07:26 -0700 (PDT)
Received: from brmea-mail-1.sun.com ([192.18.98.31])
 by nwk-avmta-2.sfbay.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0K0Y00D2L0SDCW80@nwk-avmta-2.sfbay.sun.com>; Thu,
 15 May 2008 21:07:25 -0700 (PDT)
Received: from dm-usca19-13.red.iplanet.com
 (host-179-56-18-192.iplanet.com [192.18.56.179] (may be forged))
	by brmea-mail-1.sun.com (8.13.6+Sun/8.12.9) with ESMTP id m4G47PpO026709; Fri,
 16 May 2008 04:07:25 +0000 (GMT)
Received: from buye.red.iplanet.com (buye [192.18.65.224])
	by dm-usca19-13.red.iplanet.com (8.11.7p1+Sun/8.11.7/IPLANET,v1.2)
 with ESMTP id m4G47OO03818; Thu, 15 May 2008 21:07:24 -0700 (PDT)
Received: from buye.red.iplanet.com (localhost [127.0.0.1])
	by buye.red.iplanet.com (8.13.7+Sun/8.13.7) with ESMTP id m4G47Opw021031; Thu,
 15 May 2008 21:07:24 -0700 (PDT)
Received: (from jyri@localhost)
	by buye.red.iplanet.com (8.13.7+Sun/8.13.7/Submit) id m4G47OLA021030; Thu,
 15 May 2008 21:07:24 -0700 (PDT)
Date: Thu, 15 May 2008 21:07:24 -0700
From: Jyri Virkki <Jyri.Virkki@sun.com>
Subject: Re: LSARC/2008/303 Integrate PhpPgAdmin 4.2 Integration into Nevada
In-reply-to: <48232131.4000800@sun.com>
To: James Gates <James.Gates@sun.com>
Cc: lsarc-ext@sun.com, Thavamuni.Alagu@sun.com
Message-id: <20080516040724.GL19265@sun.com>
MIME-version: 1.0
Content-type: text/plain; charset=us-ascii
Content-transfer-encoding: 7BIT
Content-disposition: inline
X-PMX-Version: 5.4.1.325704
References: <48232131.4000800@sun.com>
User-Agent: Mutt/1.5.11
Status: RO
Content-Length: 2359

James Gates wrote:
>
>         4.5.2. Imported Interfaces
> 
>         NAME                           STABILITY       NOTES
>         PHP5                           Uncommitted     PSARC/2007/168
>         Apache2                        Uncommitted     PSARC/2004/676

The apache2 import should really be PSARC/2007/586 as that is the one
available in Nevada/OpenSolaris, where this case is headed (2004/676
is the old apache 2.0 which doesn't exist anymore).


>         4.5.3. Exported Interfaces
> 
>         NAME                           STABILITY       NOTES
> 
>         SUNWphppgadminu                committed       Usr component
>         SUNWphppgadminr                committed       Root component
>         Files Layout within pkg        uncommitted
> 
>         One config file is delivered here:
>               /etc/phppgadmin/config.inc.php

Not clear to me why the entire file layout (under
/usr/postgres/phppgadmin) should be a public interface. Do you intend
to document & supports users to change/tune/reference the content
there?

Without looking at it in detail, seems like everything below
/usr/postgres/phppgadmin is project private and
/etc/phppgadmin/config.inc.php is the public interface, no?

The top path "/usr/postgres/phppgadmin/" does need to be an
interface as well since users need to hardcode that path into their
web server configuration. But making everything under it private seems
to make sense (then you can update the version without worrying if any
implementation files move around).


>         One has to setup the webserver to activate this.

This seems to be the key missing bit here.

Have you evaluated the possibility delivering an additional
apache2-specific connector package which enables it (probably by
delivering appropriate apache2 configuration into
/etc/apache2/2.2/conf.d/) if the package is installed?  That would 
allow documenting a one-line procedure setting up phpPgAdmin 
("pkg install SUNWphpphadmin SUNWapch22-phppgadmin").

Merely delivering some php files doesn't add much value. Anyone could
download the phpPgAdmin tarball and untar it into their docroot about
as easily as typing "pkg install SUNWphpphadmin". The opportunity for
real value-add for OpenSolaris here is if you can also deliver
something that "just works". 

-- 
Jyri J. Virkki - jyri.virkki@sun.com - Sun Microsystems

From Thavamuni.Alagu@sun.com Fri May 16 05:01:18 2008
Received: from sunmail5.uk.sun.com (sunmail5.UK.Sun.COM [129.156.85.165])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id m4GC1IOZ021835
	for <LSARC-ext@sac.sfbay.sun.com>; Fri, 16 May 2008 05:01:18 -0700 (PDT)
Received: from nwk-avmta-2.sfbay.sun.com (nwk-avmta-2.SFBay.Sun.COM [129.145.155.6])
	by sunmail5.uk.sun.com (8.13.8+Sun/8.13.8/ENSMAIL,v2.2) with ESMTP id m4GC17hU002869
	for <@sunmail2sca.sfbay.sun.com:lsarc-ext@sun.com>; Fri, 16 May 2008 13:01:17 +0100 (BST)
Received: from pmxchannel-daemon.nwk-avmta-2.sfbay.sun.com by
 nwk-avmta-2.sfbay.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0K0Y00H05MQ06800@nwk-avmta-2.sfbay.sun.com> for lsarc-ext@sun.com
 (ORCPT lsarc-ext@sun.com); Fri, 16 May 2008 05:01:12 -0700 (PDT)
Received: from brmea-mail-3.sun.com ([192.18.98.34])
 by nwk-avmta-2.sfbay.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0K0Y001BMMPZ6IF0@nwk-avmta-2.sfbay.sun.com> for
 lsarc-ext@sun.com (ORCPT lsarc-ext@sun.com); Fri,
 16 May 2008 05:01:12 -0700 (PDT)
Received: from fe-amer-09.sun.com ([192.18.109.79])
	by brmea-mail-3.sun.com (8.13.6+Sun/8.12.9) with ESMTP id m4GC1Bau008525	for
 <lsarc-ext@sun.com>; Fri, 16 May 2008 12:01:11 +0000 (GMT)
Received: from conversion-daemon.mail-amer.sun.com by mail-amer.sun.com
 (Sun Java System Messaging Server 6.2-8.04 (built Feb 28 2007))
 id <0K0Y00G01MNK3Z00@mail-amer.sun.com>
 (original mail from Thavamuni.Alagu@Sun.COM)
 for lsarc-ext@sun.com (ORCPT lsarc-ext@sun.com); Fri,
 16 May 2008 06:01:11 -0600 (MDT)
Received: from [129.150.154.50] by mail-amer.sun.com
 (Sun Java System Messaging Server 6.2-8.04 (built Feb 28 2007))
 with ESMTPSA id <0K0Y00BIXMPOL0G0@mail-amer.sun.com>; Fri,
 16 May 2008 06:01:10 -0600 (MDT)
Date: Fri, 16 May 2008 17:31:03 +0530
From: Thava Alagu <Thavamuni.Alagu@sun.com>
Subject: Re: LSARC/2008/303 Integrate PhpPgAdmin 4.2 Integration into Nevada
In-reply-to: <20080516040724.GL19265@sun.com>
Sender: Thavamuni.Alagu@sun.com
To: Jyri Virkki <Jyri.Virkki@sun.com>, lsarc-ext@sun.com
Cc: James Gates <James.Gates@sun.com>
Message-id: <482D777F.5030505@sun.com>
MIME-version: 1.0
Content-type: multipart/mixed; boundary="Boundary_(ID_fL7SGxSxjytg2yACMm37gA)"
X-PMX-Version: 5.4.1.325704
References: <48232131.4000800@sun.com> <20080516040724.GL19265@sun.com>
User-Agent: Thunderbird 2.0.0.14 (Windows/20080421)
Status: RO
Content-Length: 18131

This is a multi-part message in MIME format.

--Boundary_(ID_fL7SGxSxjytg2yACMm37gA)
Content-type: text/plain; format=flowed; charset=ISO-8859-1
Content-transfer-encoding: 7BIT

Jyri Virkki wrote:
> James Gates wrote:
>   
>>         4.5.2. Imported Interfaces
>>
>>         NAME                           STABILITY       NOTES
>>         PHP5                           Uncommitted     PSARC/2007/168
>>         Apache2                        Uncommitted     PSARC/2004/676
>>     
>
> The apache2 import should really be PSARC/2007/586 as that is the one
> available in Nevada/OpenSolaris, where this case is headed (2004/676
> is the old apache 2.0 which doesn't exist anymore).
>
>
>   
     OK, thanks for pointing this out, I will update the 1-pager to this 
effect.
>>         4.5.3. Exported Interfaces
>>
>>         NAME                           STABILITY       NOTES
>>
>>         SUNWphppgadminu                committed       Usr component
>>         SUNWphppgadminr                committed       Root component
>>         Files Layout within pkg        uncommitted
>>
>>         One config file is delivered here:
>>               /etc/phppgadmin/config.inc.php
>>     
>
> Not clear to me why the entire file layout (under
> /usr/postgres/phppgadmin) should be a public interface. Do you intend
> to document & supports users to change/tune/reference the content
> there?
>
> Without looking at it in detail, seems like everything below
> /usr/postgres/phppgadmin is project private and
> /etc/phppgadmin/config.inc.php is the public interface, no?
>   
> The top path "/usr/postgres/phppgadmin/" does need to be an
> interface as well since users need to hardcode that path into their
> web server configuration. But making everything under it private seems
> to make sense (then you can update the version without worrying if any
> implementation files move around).
>
>   
   yes, the file lay out could change at anytime and we don't guarantee 
or document
the content structure.  This should probably then be classified as 
"project private" as you mentioned
instead of "uncommitted".  yes, the /etc/phppgadmin/config.inc.php is 
public interface and I will add
another line to explicitly clarify this. 
>   
>   
>>         One has to setup the webserver to activate this.
>>     
>
> This seems to be the key missing bit here.
>
> Have you evaluated the possibility delivering an additional
> apache2-specific connector package which enables it (probably by
> delivering appropriate apache2 configuration into
> /etc/apache2/2.2/conf.d/) if the package is installed?  That would 
> allow documenting a one-line procedure setting up phpPgAdmin 
> ("pkg install SUNWphpphadmin SUNWapch22-phppgadmin").
>
> Merely delivering some php files doesn't add much value. Anyone could
> download the phpPgAdmin tarball and untar it into their docroot about
> as easily as typing "pkg install SUNWphpphadmin". The opportunity for
> real value-add for OpenSolaris here is if you can also deliver
> something that "just works". 
>
>   
     I did take a look into this and found that we don't need another 
predefined config file for phppgadmin
comparable and similar to config modules in /etc/apache/2.2/conf.d.  We 
bundle sun specific man page
for phppgadmin where we describe how to configure phppgadmin with apache 
with fairly simple couple
of lines change in httpd.conf file.

I am attaching the updated 1-pager.

-thava


--Boundary_(ID_fL7SGxSxjytg2yACMm37gA)
Content-type: text/plain; name=phppg1pg.txt
Content-transfer-encoding: 7BIT
Content-disposition: inline; filename=phppg1pg.txt


Template Version: @(#)onepager.txt 1.35 07/11/07 SMI
Copyright 2008 Sun Microsystems

1. Introduction

   1.1. Project/Component Working Name:
        PhpPgAdmin 4.2 Integration into Nevada

   1.2. Name of Document Author/Supplier: 
        Thavamuni Alagu

   1.3. Date of This Document: 
        16 May 2008
    
   1.4. Name of Major Document Customer(s)/Consumer(s):
        1.4.1. The Community you expect to review your project:
               Webstack
        1.4.2. The ARC(s) you expect to review your project:
               LSARC

   1.5. Email Aliases:
        1.5.2. Responsible Engineer: thavamuni.alagu@sun.com

        1.5.4. Interest List:
               webstack-discuss@opensolaris.org
               databases-discuss@opensolaris.org

2. Project Summary
   2.1. Project Description:

        phppgadmin is a web-based administration tool for PostgreSQL.
        This project integrates this into Opensolaris.
    
   2.2. Risks and Assumptions:

        The latest released version for phpPgAdmin is 4.2.

        The phppgadmin 4.2 supports all recent versions of postgres including
        the latest Postgres 8.3 targetted for Nevada. This is important
        to integrate this latest version along with Postgres8.3 in Nevada.
        The earlier released version 4.1.3 does not support Postgres 8.3.

4. Technical Description:

    4.1. Details:

        phpPgAdmin is a opensource web-based administration tool for PostgreSQL
        See http://sourceforge.net/projects/phppgadmin for more information.

        PhpPgAdmin distribution includes collection of php files. It does not 
        need compilation for particular platform. The distribution is available
        for download from the web in .bz2, .gz, .zip formats.

        This would be configurable with the default apache server and
        PHP that is shipped with Nevada. Note that this depends
        on the PHP extension pgsql.so that is by default available and shipped
        with PHP. The source for PHP (including this pgsql.so extension) is 
        http://www.php.net

    4.5. Interfaces

        4.5.1. Interface Stability

        The phppgadmin is designed to support all recent versions of PostgreSQL.
        For example, the phppgadmin 4.2 is designed to support Postgres 7.*,
        8.1, 8.2 and 8.3 versions. Hence upgrading phppgadmin is usually 
        regarded as hassle free.

        4.5.2. Imported Interfaces

        NAME                           STABILITY       NOTES
        PHP5                           Uncommitted     PSARC/2007/168
        Apache2                        Uncommitted     PSARC/2007/586

        4.5.3. Exported Interfaces

        NAME                           STABILITY       NOTES

        SUNWphppgadminu                committed       Usr component
        SUNWphppgadminr                committed       Root component
        /etc/phppgadmin/config.inc.php uncommitted     Config file
        /usr/postgres/phppgadmin       uncommitted     Install Location
        Files Layout within pkg        project private

        One config file is delivered here:
              /etc/phppgadmin/config.inc.php
        This file is delivered into separate package SUNWphpgadminr

        A symbolic link /usr/postgres/phppgadmin/conf/config.inc.php
        is created to point to /etc/phppgadmin/config.inc.php

        All other files are delivered inside /usr/postgres/phppgadmin 
        directory.

        Package Name: SUNWphppgadminu  
        Content Layout:
.:
CREDITS              fulltext.php         redirect.php
DEVELOPERS           functions.js         reports.php
FAQ                  functions.php        robots.txt
HISTORY              groups.php           roles.php
INSTALL              help/                rules.php
LICENSE              help.php             schemas.php
TODO                 history.php          selenium/
TRANSLATORS          images/              sequences.php
aciur.js             index.php            servers.php
aggregates.php       indexes.js           sql/
all_db.php           indexes.php          sql.php
autocomplete.php     info.php             sqledit.php
browser.php          intro.php            tables.js
casts.php            lang/                tables.php
classes/             languages.php        tablespaces.php
colproperties.php    libraries/           tblproperties.php
conf/                links.js             themes/
constraints.php      login.php            triggers.php
conversions.php      logout.php           types.php
database.php         multiactionform.js   users.php
dataexport.php       opclasses.php        viewproperties.php
dataimport.php       operators.php        views.php
dbexport.php         out                  xloadtree/
display.php          plugin_slony.php
domains.php          privileges.php

./classes:
ArrayRecordSet.php   Reports.php          plugins/
Gui.php              class.select.php
Misc.php             database/

./classes/database:
ADODB_base.php   Postgres71.php   Postgres74.php   Postgres82.php
Connection.php   Postgres72.php   Postgres80.php   Postgres83.php
Postgres.php     Postgres73.php   Postgres81.php

./classes/plugins:
Plugin.php   Slony.php

./conf:
config.inc.php -> /etc/phppgadmin/config.inc.php
config.inc.php-dist

./help:
PostgresDoc70.php   PostgresDoc73.php   PostgresDoc81.php
PostgresDoc71.php   PostgresDoc74.php   PostgresDoc82.php
PostgresDoc72.php   PostgresDoc80.php   PostgresDoc83.php

./images:
themes/

./images/themes:
default/

./images/themes/default:
AddArguments.png              OfferedReplicationSet.png
Admin.png                     OfferedSubscription.png
Aggregate.png                 Open.png
Aggregates.png                Operator.png
AllUsers.png                  OperatorClass.png
AvailableReplicationSet.png   OperatorClasses.png
AvailableSubscription.png     Operators.png
Backup.png                    Paste.png
Cast.png                      Path.png
Casts.png                     Paths.png
CheckConstraint.png           PrimaryKey.png
Cluster.png                   Privileges.png
Column.png                    Processes.png
Columns.png                   Property.png
Constraints.png               RaiseArgument.png
Conversion.png                Record.png
Conversions.png               Records.png
Copy.png                      Redo.png
CorruptedDatabase.png         Refresh.png
Cut.png                       RemoveArgument.png
Database.png                  Replication.png
Databases.png                 ReplicationSets.png
Definition.png                Report.png
Delete.png                    Reports.png
DisabledJob.png               Restore.png
DisconnectedDatabase.png      Roles.png
DisconnectedServer.png        Rule.png
Domain.png                    Rules.png
Domains.png                   Save.png
EnableArgument.png            Schedule.png
Erase.png                     Schedules.png
Execute.png                   Schema.png
ExecuteSave.png               Schemas.png
Explain.png                   Search.png
Export.png                    Sequence.png
Favicon.ico                   Sequences.png
Filter.png                    Server.png
ForeignKey.png                Servers.png
Fts.png                       SqlEditor.png
FtsCfg.png                    Statistics.png
FtsDict.png                   Step.png
FtsParser.png                 Steps.png
Function.png                  Stop.png
Functions.png                 Subscriptions.png
GurusHint.png                 T.png
Help.png                      Table.png
Histories.png                 Tables.png
History.png                   Tablespace.png
I.png                         Tablespaces.png
Import.png                    Tminus.png
Index.png                     Tplus.png
Indexes.png                   Trigger.png
Introduction.png              TriggerFunction.png
Job.png                       TriggerFunctions.png
Jobs.png                      Triggers.png
Key.png                       Type.png
L.png                         Types.png
Language.png                  Undo.png
Languages.png                 UniqueConstraint.png
Listen.png                    User.png
Listens.png                   UserGroup.png
Lminus.png                    UserGroups.png
Loading.gif                   Users.png
LowerArgument.png             Variables.png
Lplus.png                     View.png
Node.png                      Views.png
Nodes.png                     blank.png
ObjectNotFound.png            title.png

./lang:
Makefile                 english.php              portuguese-br.php
afrikaans.php            french.php               portuguese-pt.php
arabic.php               german.php               recoded/
catalan.php              hebrew.php               romanian.php
chinese-sim.php          hungarian.php            russian.php
chinese-tr.php           italian.php              slovak.php
chinese-utf8-zh_CN.php   japanese.php             spanish.php
chinese-utf8-zh_TW.php   langcheck                swedish.php
convert.awk*             mongol.php               synch*
czech.php                php2po*                  translations.php
danish.php               po2php*                  turkish.php
dutch.php                polish.php               ukrainian.php

./lang/recoded:
README                   dutch.php                portuguese-br.php
afrikaans.php            english.php              portuguese-pt.php
arabic.php               french.php               romanian.php
catalan.php              german.php               russian.php
chinese-sim.php          hebrew.php               slovak.php
chinese-tr.php           hungarian.php            spanish.php
chinese-utf8-zh_CN.php   italian.php              swedish.php
chinese-utf8-zh_TW.php   japanese.php             turkish.php
czech.php                mongol.php               ukrainian.php
danish.php               polish.php

./libraries:
adodb/                 errorhandler.inc.php   lib.inc.php
decorator.inc.php      highlight.php

./libraries/adodb:
adodb-csvlib.inc.php     adodb-php4.inc.php       license.txt*
adodb-datadict.inc.php   adodb-time.inc.php       readme.txt*
adodb-error.inc.php      adodb.inc.php            toexport.inc.php
adodb-iterator.inc.php   drivers/                 tohtml.inc.php
adodb-lib.inc.php        lang/

./libraries/adodb/drivers:
adodb-postgres.inc.php     adodb-postgres7.inc.php
adodb-postgres64.inc.php   adodb-postgres8.inc.php

./libraries/adodb/lang:
adodb-ar.inc.php          adodb-de.inc.php          adodb-nl.inc.php
adodb-bg.inc.php          adodb-en.inc.php          adodb-pl.inc.php
adodb-bgutf8.inc.php      adodb-es.inc.php          adodb-pt-br.inc.php
adodb-ca.inc.php          adodb-esperanto.inc.php   adodb-ro.inc.php
adodb-cn.inc.php          adodb-fr.inc.php          adodb-ru1251.inc.php
adodb-cz.inc.php          adodb-hu.inc.php          adodb-sv.inc.php
adodb-da.inc.php          adodb-it.inc.php          adodb-uk1251.inc.php

./selenium:
Blank.html                  iedoc-core.xml
InjectedRemoteRunner.html   iedoc.xml
RemoteRunner.html           lib/
SeleniumLog.html            scripts/
TestPrompt.html             selenium-logo.png
TestRunner-splash.html      selenium-test.css
TestRunner.hta              selenium.css
TestRunner.html             tests/
domviewer/                  user-extensions.js
icons/                      xpath/

./selenium/domviewer:
butmin.gif              domviewer.css           selenium-domviewer.js
butplus.gif             domviewer.html

./selenium/icons:
all.png                 pause.png               step.png
continue.png            pause_disabled.png      step_disabled.png
continue_disabled.png   selected.png

./selenium/lib:
cssQuery/       prototype.js    scriptaculous/

./selenium/lib/cssQuery:
cssQuery-p.js   src/

./selenium/lib/cssQuery/src:
cssQuery-level2.js     cssQuery-standard.js
cssQuery-level3.js     cssQuery.js

./selenium/lib/scriptaculous:
builder.js         dragdrop.js        scriptaculous.js   unittest.js
controls.js        effects.js         slider.js

./selenium/scripts:
find_matching_child.js        selenium-browserbot.js
htmlutils.js                  selenium-browserdetect.js
injection.html                selenium-commandhandlers.js
injection_iframe.html         selenium-executionloop.js
js2html.js                    selenium-logging.js
narcissus-defs.js             selenium-remoterunner.js
narcissus-exec.js             selenium-testrunner.js
narcissus-parse.js            selenium-version.js
se2html.js                    user-extensions.js.sample
selenium-api.js               xmlextras.js

./selenium/tests:
README                 create_view.php        intro.php
TestSuite.html         domain.php             login.php
column.php             drop_database.php      logout.php
config.inc.php         drop_domain_fail.php   outro.php
constraints.php        drop_role_bad.php      sequence.php
create_database.php    drop_schema.php        table.php
create_schema.php      index.php

./selenium/xpath:
dom.js     misc.js    xpath.js

./sql:
reports-pgsql.sql

./themes:
default/

./themes/default:
global.css

./xloadtree:
xloadtree2.js   xtree2.js

    4.6. Doc Impact:

         No additional effort planned for this integration.
         The product comes with online help.
         The INSTALL, FAQ files already shipped at the top level directory 
         provides installation/configuration instructions.

    4.9. I18N/L10N Impact:
         No additional effort required.
         The product comes with translation support for wide variety
         of languages for displayed messages in web interface.
    
    4.10. Packaging & Delivery:
      See section 4.5 Interfaces.
    
    4.11. Security Impact:

        By default, the installation of this package does not activate
        any webserver (such as apache webserver) to include phppgadmin.
        One has to setup the webserver to activate this.
    
    4.12. Dependencies:

        Configuring this needs any PHP capable webserver.
        The PHP itself should be either configured and compiled with built-in 
        support with PostgreSQL support or should have dynamic PHP module
        pgsql.so available.

        The current apache version 2.2 shipped with Nevada is PHP capable. 
        The current PHP version 5.2.4 in Nevada includes pgsql.so module.

5. Reference Documents:

         Phppgadmin Home : http://sourceforge.net/projects/phppgadmin

6. Resources and Schedule:
   6.1. Projected Availability:
   6.5. ARC review type:  FastTrack

--Boundary_(ID_fL7SGxSxjytg2yACMm37gA)--

From Jyri.Virkki@sun.com Fri May 16 13:39:33 2008
Received: from sunmail5.uk.sun.com (sunmail5.UK.Sun.COM [129.156.85.165])
	by sac.sfbay.sun.com (8.13.8+Sun/8.13.8) with ESMTP id m4GKdWv7007129
	for <LSARC-ext@sac.sfbay.sun.com>; Fri, 16 May 2008 13:39:33 -0700 (PDT)
Received: from nwk-avmta-2.sfbay.sun.com (nwk-avmta-2.SFBay.Sun.COM [129.145.155.6])
	by sunmail5.uk.sun.com (8.13.8+Sun/8.13.8/ENSMAIL,v2.2) with ESMTP id m4GKdSFn012551;
	Fri, 16 May 2008 21:39:30 +0100 (BST)
Received: from pmxchannel-daemon.nwk-avmta-2.sfbay.sun.com by
 nwk-avmta-2.sfbay.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 id <0K0Z00E01APTOL00@nwk-avmta-2.sfbay.sun.com>; Fri,
 16 May 2008 13:39:29 -0700 (PDT)
Received: from brmea-mail-1.sun.com ([192.18.98.31])
 by nwk-avmta-2.sfbay.sun.com
 (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
 with ESMTP id <0K0Z00ARMAPSRI40@nwk-avmta-2.sfbay.sun.com>; Fri,
 16 May 2008 13:39:29 -0700 (PDT)
Received: from dm-usca15-11.red.iplanet.com
 (host-185-56-18-192.iplanet.com [192.18.56.185] (may be forged))
	by brmea-mail-1.sun.com (8.13.6+Sun/8.12.9) with ESMTP id m4GKdS2d024075; Fri,
 16 May 2008 20:39:28 +0000 (GMT)
Received: from buye.red.iplanet.com (buye [192.18.65.224])
	by dm-usca15-11.red.iplanet.com (8.11.7p1+Sun/8.11.7/IPLANET,v1.2)
 with ESMTP id m4GKdS225787; Fri, 16 May 2008 13:39:28 -0700 (PDT)
Received: from buye.red.iplanet.com (localhost [127.0.0.1])
	by buye.red.iplanet.com (8.13.7+Sun/8.13.7) with ESMTP id m4GKdSbv023945; Fri,
 16 May 2008 13:39:28 -0700 (PDT)
Received: (from jyri@localhost)
	by buye.red.iplanet.com (8.13.7+Sun/8.13.7/Submit) id m4GKdS88023944; Fri,
 16 May 2008 13:39:28 -0700 (PDT)
Date: Fri, 16 May 2008 13:39:28 -0700
From: Jyri Virkki <Jyri.Virkki@sun.com>
Subject: Re: LSARC/2008/303 Integrate PhpPgAdmin 4.2 Integration into Nevada
In-reply-to: <482D777F.5030505@sun.com>
To: Thava Alagu <Thavamuni.Alagu@sun.com>
Cc: lsarc-ext@sun.com, James Gates <James.Gates@sun.com>
Message-id: <20080516203928.GA23713@sun.com>
MIME-version: 1.0
Content-type: text/plain; charset=us-ascii
Content-transfer-encoding: 7BIT
Content-disposition: inline
X-PMX-Version: 5.4.1.325704
References: <48232131.4000800@sun.com> <20080516040724.GL19265@sun.com>
 <482D777F.5030505@sun.com>
User-Agent: Mutt/1.5.11
Status: RO
Content-Length: 2366

Thava Alagu wrote:
>
>   yes, the file lay out could change at anytime and we don't guarantee 
> or document
> the content structure.  This should probably then be classified as 
> "project private" as you mentioned
> instead of "uncommitted".  yes, the /etc/phppgadmin/config.inc.php is 
> public interface and I will add
> another line to explicitly clarify this. 

Ok sounds good.. thanks.

At this point only a nit remains but:
>         Files Layout within pkg        project private
it's not the layout "within the package", it's the layout after installation
under /usr/postgres/phppgadmin/*.  Should be obvious to readers, just
strange wording.


> >Merely delivering some php files doesn't add much value. Anyone could
> >download the phpPgAdmin tarball and untar it into their docroot about
> >as easily as typing "pkg install SUNWphpphadmin". The opportunity for
> >real value-add for OpenSolaris here is if you can also deliver
> >something that "just works". 
>  
>     I did take a look into this and found that we don't need another 
> predefined config file for phppgadmin
> comparable and similar to config modules in /etc/apache/2.2/conf.d.  We 
> bundle sun specific man page
> for phppgadmin where we describe how to configure phppgadmin with apache 
> with fairly simple couple
> of lines change in httpd.conf file.

Well, "need" isn't a great answer.  We also don't *need* to deliver this
package at all, users can easily enough download the tarball from the
web themselves.

It seems SUNWphppgadmin doesn't add much value above and beyond doing:
% wget http://downloads.sourceforge.net/phppgadmin/phpPgAdmin-4.2.tar.gz
% gtar xzf phpPgAdmin-4.2.tar.gz

Ok that's two steps vs one step ("pkg install SUNWphppgadmin") ;-)

Ease of use and out of box integration are top priorities for the Web
Stack project and there is an opportunity here to do more and do better.

ARC isn't the best forum for this design discussion. Unfortunately
this project came to ARC before a thorough discussion on the project
community, which would be the usual order.

I suggest:

- Set this case to "waiting need spec".
- Thava, take the discussion to webstack-discuss@opensolaris.org where
  we can explore the user experience details with the community.
- Then come back to close the case here in ARC.


-- 
Jyri J. Virkki - jyri.virkki@sun.com - Sun Microsystems

