libproxy [LSARC/2009/088 FastTrack timeout 11/18/2009]
Lloyd Chambers
Lloyd.Chambers at Sun.COM
Tue Feb 24 09:57:20 PST 2009
+1
..............................................
Lloyd Chambers
GlassFish team, LSARC member
On Feb 12, 2009, at 11:46 AM, John Fischer wrote:
> All,
>
> Attached please find an updated proposal for this project.
> The case directory has been updated as well. Most of the
> updates are for readability/clarification. The only interface
> change is an addition to the interface table for the
> PX_CONFIG_ORDER environment variable which was already described
> at the end of the Details section (3.1).
>
> Thanks,
>
> John
>
>
> John Fischer wrote:
>> Template Version: @(#)sac_nextcase %I% %G% SMI
>> This information is Copyright 2009 Sun Microsystems
>> 1. Introduction
>> 1.1. Project/Component Working Name:
>> libproxy
>> 1.2. Name of Document Author/Supplier:
>> Author: Ke Wang
>> 1.3 Date of This Document:
>> 11 February, 2009
>> 4. Technical Description
>> 1. Introduction
>> 1.1. Project/Component Working Name:
>> libproxy
>> 1.2. Name of Document Author/Supplier:
>> Author: Ke Wang
>> Sponser: Irene Huang
>> 1.3. Date of This Document:
>> 02/04/2009
>> 1.4. Name of Major Document Customer(s)/Consumer(s):
>> 1.4.1. The PAC or CPT you expect to review your project:
>> Solaris PAC
>> 1.4.2. The ARC(s) you expect to review your project:
>> LSARC
>> 1.4.3. The Director/VP who is "Sponsoring" this project:
>> Robert O'Dea
>> 1.4.4. The name of your business unit:
>> Software - OPG
>> 1.5. Email Aliases:
>> 1.5.1. Responsible Manager: harry.lu at sun.com
>> 1.5.2. Responsible Engineer: ke.wang at sun.com
>> 1.5.3. Marketing Manager: glynn.foster at sun.com
>> 1.5.4. Interest List: jeff.cai at sun.com
>> 2. Project Summary
>> 2.1. Project Description:
>> libproxy is a library that provides automatic proxy
>> configuration management.
>> 3. Technical Description:
>> 3.1. Details:
>> Proxy configuration is problematic for a number of reasons:
>> 1. There are a variety of places to get configuration
>> information
>> 2. There are a variety of proxy types
>> 3. Proxy auto-configuration (PAC) requires Javascript (which
>> most applications don't have)
>> 4. Automatically determining PAC location requires an
>> implementation of the WPAD protocol
>> Libproxy provides interfaces to get proxy that should be used
>> to access a network resource.
>> It use various plugins to get proxy configuration from
>> different places e.g. environment
>> variables, GConf, PAC.
>> Libproxy offers the following features:
>> * extremely small core footprint
>> * no external dependencies within libproxy core (libproxy
>> plugins may have dependencies)
>> * only 3 functions in the stable external API
>> * dynamic adjustment to changing network topology
>> * a standard way of dealing with proxy settings across all
>> scenarios
>> Libproxy includes a core library and several plugins. What the
>> core library does is
>> only checking each plugin for an available proxy.
>> Plugins list follows:
>> PLUGIN | DEPS | COMMENT
>> envar | None | Used to get proxy
>> configured by environment variable "http_proxy"
>> file | None | Used to get proxy
>> configured in file $SYSCONFDIR/proxy.conf or $HOME/.proxy.conf
>> gnome | x11, xmu, gconf | Used to get proxy
>> configured by GConf
>> mozjs | mozjs | Get proxy by PAC
>> Every configuration plugin has a type. There are three
>> configuration types:
>> 1. SYSTEM - Defines configuration on a system-wide basis
>> 2. USER - Defines configuration on a user-wide basis
>> 3. SESSION - Defines configuration for this current login
>> session only A plugin can also choose to have no
>> configuration type.
>> By default, plugins are attempted in the following order:
>> SESSION, USER, SYSTEM, and finally
>> plugins without a type. The order within the categories is
>> undefined and could be random. If a
>> plugins says it can't find the configuration, the next plugin
>> is tried. So for instance, the
>> KDE plugin will not be used unless you are actually logged
>> into KDE. The same applies for GNOME.
>> The plugin order can be manually specified through an
>> environmental variable.
>> For instance, the following will set libproxy to use the
>> envvar plugin first, then USER,
>> then SYSTEM, then SESSION (capitalization is important):
>> export PX_CONFIG_ORDER=envvar,USER,SYSTEM,SESSION
>> Libsoup 2.25.5 and above depends on libproxy.
>> 3.2. Interfaces:
>> Exported Interfaces
>> Interface
>> Classification Comments
>> ---------------
>> -------------- -----------------------
>> SUNWlibproxy
>> Uncommitted Package name of base library
>> SUNWlibproxy-devel
>> Uncommitted Package name of library for development
>> /usr/lib/libproxy.so.0
>> Volatile C library
>> /usr/lib/amd64/libproxy.so.0
>> Volatile 64-bit library
>> /usr/lib/python2.4/vendor-packages/libproxy.py
>> Volatile Python binding
>> /usr/lib/pkgconfig/libproxy-1.0.pc
>> Uncommitted libproxy pc file
>> /usr/lib/amd64/pkgconfig/libproxy-1.0.pc
>> Uncommitted 64-bit pc file
>> /usr/include/libproxy/proxy.h
>> Volatile libproxy header file
>> /usr/demo/jds/bin/proxy Volatile
>> binary file used for testing
>> /usr/demo/jds/bin/amd64/proxy
>> Volatile 64-bit binary file for testing
>> /usr/share/man/man3/libproxy.3
>> Volatile libproxy man page
>> /usr/lib/libproxy/0.2.3/plugins/envvar.so
>> Volatile plugins for environment variables
>> /usr/lib/libproxy/0.2.3/plugins/file.so
>> Volatile plugins for configration files
>> /usr/lib/libproxy/0.2.3/plugins/gnome.so
>> Volatile plugins for GConf
>> /usr/lib/libproxy/0.2.3/plugins/mozjs.so
>> Volatile plugins for PAC
>> /usr/lib/amd64/libproxy/*
>> Volatile 64-bit plugins
>> Imported Interfaces
>> Interface
>> Classification Comments
>> ---------------
>> -------------- -----------------------
>> SUNWgnome-config
>> Committed LSARC/2002/146
>> SUNWxwplt
>> Stable X Window System platform software(PSARC/1998/299)
>> http_proxy, no_proxy environment variable
>> Stable PSARC/2001/540 [10]
>> GConf keys: /system/proxy/mode,
>> /system/proxy/autoconfig_url, /system/
>> http_proxy/host, /system/http_proxy/port,
>> Volatile Gconf configuration keys
>> /system/proxy/socks_host, /system/proxy/
>> socks_port, /system/http_proxy/ignore_hosts
>> libmozjs.so
>> Consolidation Shared with Firefox
>> Private
>> 3.3. Packaging & Delivery:
>> SUNWlibproxy(base package) - base package
>> SUNWlibproxy-devel (development package) - develoment
>> package for
>> header
>> 3.4. Dependencies:
>> Plugin of libproxy for GNOME depends on
>> libX11 ,libXmu ,libgconf and libmozjs.
>> 3.5. Security Impact:
>> Libproxy supports the feature of WPAD, which exposes a
>> security risk discussed
>> in the following link:
>> http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol#Security
>> We shall apply a patch to disable WPAD by default and there
>> is no other security impact.
>> 4. Resources and Schedule:
>> 4.1. Product Approval Committee requested information:
>> 4.1.1. Consolidation Name:
>> Desktop Cteam/GNOME
>> 4.1.2. Contributing OpCo/BU/Division Name:
>> Desktop
>> 4.1.3. Type of PAC Review and Approval expected:
>> FastTrack
>> 5. References
>> Project website: http://code.google.com/p/libproxy/
>> Applications that should use libproxy: http://code.google.com/p/libproxy/wiki/Applications
>> 6. Resources and Schedule
>> 6.4. Steering Committee requested information
>> 6.4.1. Consolidation C-team Name:
>> JDS - Gnome
>> 6.5. ARC review type: FastTrack
>> 6.6. ARC Exposure: open
> 1. Introduction
> 1.1. Project/Component Working Name:
>
> libproxy
>
> 1.2. Name of Document Author/Supplier:
>
> Author: Ke Wang
> Sponser: John Fischer
>
> 1.3. Date of This Document:
>
> 02/04/2009
>
> 1.4. Name of Major Document Customer(s)/Consumer(s):
>
> 1.4.1. The PAC or CPT you expect to review your project:
>
> Solaris PAC
>
> 1.4.2. The ARC(s) you expect to review your project:
>
> LSARC
>
> 1.4.3. The Director/VP who is "Sponsoring" this project:
>
> Robert O'Dea
>
> 1.4.4. The name of your business unit:
>
> Software - OPG
>
> 1.5. Email Aliases:
> 1.5.1. Responsible Manager: harry.lu at sun.com
> 1.5.2. Responsible Engineer: ke.wang at sun.com
> 1.5.3. Marketing Manager: glynn.foster at sun.com
> 1.5.4. Interest List: jeff.cai at sun.com
>
> 2. Project Summary
> 2.1. Project Description:
>
> libproxy is a library that provides automatic proxy
> configuration management.
>
> 3. Technical Description:
> 3.1. Details:
> Proxy configuration is problematic for a number of reasons:
> 1. There are a variety of places to get configuration
> information
> 2. There are a variety of proxy types
> 3. Proxy auto-configuration (PAC) requires Javascript (which
> most applications don't have)
> 4. Automatically determining PAC location requires an
> implementation of the WPAD protocol
>
> Libproxy provides interfaces to get proxy that should be used
> to access a network resource.
> It use various plugins to get proxy configuration from
> different places e.g. environment
> variables, GConf, PAC.
>
> Libproxy offers the following features:
> * extremely small core footprint
> * no external dependencies within libproxy core (libproxy
> plugins may have dependencies)
> * only 3 functions in the stable external API
> * dynamic adjustment to changing network topology
> * a standard way of dealing with proxy settings across all
> scenarios
>
> Libproxy includes a core library and several plugins. The core
> library checks each
> plugin for an available proxy.
>
> Plugins list follows:
>
> PLUGIN | DEPS | COMMENT
> envar | None | Used to get proxy
> configured by environment variable "http_proxy"
> file | None | Used to get proxy
> configured in file $SYSCONFDIR/proxy.conf or $HOME/.proxy.conf
> gnome | x11, xmu, gconf | Used to get proxy
> configured by GConf
> mozjs | mozjs | Get proxy by PAC
>
> Every configuration plugin has a type. There are three
> configuration types:
>
> 1. SYSTEM - Defines configuration on a system-wide basis
> 2. USER - Defines configuration on a user-wide basis
> 3. SESSION - Defines configuration for this current login
> session only
>
> A plugin can also choose to have no configuration type.
>
> By default, plugins are attempted in the following order:
> SESSION, USER, SYSTEM, and finally
> plugins without a type. The order within the categories is
> undefined and could be random. If a
> plugin responds that it can't find the configuration, the next
> plugin is tried. So for instance,
> the KDE plugin will not be used unless you are actually logged
> into KDE. The same applies for GNOME.
>
> The plugin order can be manually specified through an
> environmental variable.
> For instance, the following will set libproxy to use the envvar
> plugin first, then USER,
> then SYSTEM, then SESSION (capitalization is important):
>
> export PX_CONFIG_ORDER=envvar,USER,SYSTEM,SESSION
>
> Libsoup 2.25.5 and above depends on libproxy.
>
> 3.2. Interfaces:
> Exported Interfaces
> Interface
> Classification Comments
> ---------------
> -------------- -----------------------
> SUNWlibproxy
> Uncommitted Package name of base library
> SUNWlibproxy-devel
> Uncommitted Package name of library for development
>
> /usr/lib/libproxy.so.0
> Volatile C library
> /usr/lib/amd64/libproxy.so.0
> Volatile 64-bit library
> /usr/lib/python2.4/vendor-packages/libproxy.py
> Volatile Python binding
>
> /usr/lib/pkgconfig/libproxy-1.0.pc
> Uncommitted libproxy pc file
> /usr/lib/amd64/pkgconfig/libproxy-1.0.pc
> Uncommitted 64-bit pc file
> /usr/include/libproxy/proxy.h
> Volatile libproxy header file
> /usr/demo/jds/bin/proxy Volatile
> binary file used for testing
> /usr/demo/jds/bin/amd64/proxy
> Volatile 64-bit binary file for testing
> /usr/share/man/man3/libproxy.3
> Volatile libproxy man page
> /usr/lib/libproxy/0.2.3/plugins/envvar.so
> Volatile plugins for environment variables
> /usr/lib/libproxy/0.2.3/plugins/file.so
> Volatile plugins for configration files
> /usr/lib/libproxy/0.2.3/plugins/gnome.so
> Volatile plugins for GConf
> /usr/lib/libproxy/0.2.3/plugins/mozjs.so
> Volatile plugins for PAC
> /usr/lib/amd64/libproxy/*
> Volatile 64-bit plugins
>
> PX_CONFIG_ORDER environment variable
> Volatile environment variable to define plugins order
>
>
> Imported Interfaces
> Interface
> Classification Comments
> ---------------
> -------------- -----------------------
> SUNWgnome-config
> Committed LSARC/2002/146
> SUNWxwplt
> Stable X Window System platform software(PSARC/1998/299)
> http_proxy, no_proxy environment variable
> Stable PSARC/2001/540 [10]
>
> GConf keys: /system/proxy/mode,
> /system/proxy/autoconfig_url, /system/
> http_proxy/host, /system/http_proxy/port,
> Volatile Gconf configuration keys
> /system/proxy/socks_host, /system/proxy/
> socks_port, /system/http_proxy/ignore_hosts
>
> $SYSCONFDIR/proxy.conf, $HOME/.proxy.conf
> Volatile System proxy configuration files
>
> libmozjs.so
> Consolidation Shared with Firefox
> Private
>
> 3.3. Packaging & Delivery:
> SUNWlibproxy(base package) - base package
> SUNWlibproxy-devel (development package) - develoment
> package for
> header
>
> 3.4. Dependencies:
> Plugin of libproxy for GNOME depends on
> libX11 ,libXmu ,libgconf and libmozjs.
>
> 3.5. Security Impact:
> Libproxy supports the feature of WPAD, which exposes a
> security risk discussed
> in the following link:
> http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol#Security
>
> We shall apply a patch to disable WPAD by default so there
> is no other security impact.
> Administrators can enable WPAD by passing --with-wpad-
> fallback while configuring.
>
> 4. Resources and Schedule:
>
> 4.1. Product Approval Committee requested information:
> 4.1.1. Consolidation Name:
>
> Desktop Cteam/GNOME
>
> 4.1.2. Contributing OpCo/BU/Division Name:
>
> Desktop
>
> 4.1.3. Type of PAC Review and Approval expected:
>
> FastTrack
>
> 5. References
> Project website: http://code.google.com/p/libproxy/
> Applications that should use libproxy: http://code.google.com/p/libproxy/wiki/Applications
>
More information about the opensolaris-arc
mailing list