[Jyri Virkki:]
| I like to write
| "This project delivers ..."
| Like I said, a nit...
done.
| > /etc/squid/squid.conf.default
| > /etc/squid/mime.conf.default
| > /etc/squid/msntauth.conf.default
| > /etc/cachemgr.conf
|
| Are these the working names of the files? Or samples? As with the
| apache discussion, squid should deliver a working configuration such
| that it'll work out of the box as soon as admin enables the squid
| service.
updated to *.conf .
| Is there anything under /var? On my Linux box I see a /var/spool/squid/,
| do we need this as well?
There is var/log directory where the logs are written, (updated.)
and a var/cache for disk cache.
| > 7. Squid Interfaces
| >
| > 7.1. Interface Stability
| >
| > The Squid project has not changed the configuration file format from
| > the time it started. It is a plain text file with space separated key
| > and values. However, newer configuration keys and values have been
| > added in the releases.
| >
| > Squid does not support loadable modules. Thus binary compatibility is
| > not relevant for Squid.
|
| So can we assert that future squid versions will very likely continue
| to be config and interface compatible? In other words we can continue
| updating the versions through patches and there won't be any of the
| issues faced by apache & php? That's nice, simplifies everything..
Yes, AFAIK
| > 2.3 Modules
| >
| > The modules are compiled statically into Squid, thus each release of
| > Squid needs to recompile the modules that it supports.
|
| So unlike apache, there is no notion of user-generated modules then?
There are no loadable modules.
| > 4. Squid Documentation.
| >
| > Squid comes with generic documentation in man page format for squid.8
| > cachemgr.cgi.8, squid_db_auth.8, ncsa_auth.9, squid_ldap_auth.8,
| > pam_auth.8, squid_unix_group.8 and squid_ldap_group.8. These will be
| > placed in the /usr/squid/man/man8 directory as done by the canonical
| > distribution.
|
| Some other components deliver a stub manpage in the system location,
| which points to the component-specific manpages available in the
| above location. (For example /usr/share/man/man1/php.1 for php).
I had opted to follow the apache model since apache was the closest to
squid. more over the bin/sbin directories (which are documented by man) are
under squid too.
| > 7.2. Imported Interfaces
| >
| > Squid imports interfaces from
|
| Here the spec needs a reference to the ARC case where each imported
| interface was defined and make a note in the table of the stability
| classification the exporting case used.
I am in the process of adding that in the wiki (link at the end.)
| > Solaris Trusted Extensions library (libtsol)
|
| Can you expand on this? squid will depend on TX?
the squid binaries that link to it are:
squid/libexec/squid_ldap_auth
squid/libexec/digest_ldap_auth
squid/libexec/squid_ldap_group
|
| > In addition, the following external Interfaces is imported:
| >
| > SMCdb (BerkeleyDB4.2 libdb-4)
| > SMCsasl (SASL2 libsasl2)
|
| I guess the db dependency is gone, right?
Yes, the SMCdb is removed, also SMCsasl is not required, since the sasl
that sun distributes with OpenSolaris is sasl2.
|
| > ================================================================
| > Addendum 1: Squid Integration Directory and File Structure.
| >
| > 1. The following files are included in the Squid integration:
| > /usr/squid
| ...
| > etc
| > squid.conf.default
|
| I assume this is:
| /etc
| (i.e. it's not under /usr/squid)
updated, had missed it.
The updated draft ARC case is attached,
It is also available under
http://wikis.sun.com/display/WebStack/SquidARC
rahul
--
1. e4 _
-------------- next part --------------
{noformat}
Including Squid 2.6.STABLE16 with Solaris - DRAFT
19 September 2007
1. Summary and motivation
1.1. Introduction
This FastTrack delivers Squid Cache 2.6.STABLE16[1] as a component in
sfw stack.
From the Squid HomePage [2], "Squid is a fully-featured HTTP/1.0 proxy
which is almost (but not quite - we're getting there!) HTTP/1.1. Squid
offers a rich access control, authorization and logging environment to
develop web proxy and content serving applications."
This FastTrack proposes the integration of the most recent stable
release of Squid 2.6 (STABLE16),
This case seeks Minor Release Binding.
2. Technical issues
2.1. Key objects
/etc/squid/squid.conf
/etc/squid/mime.conf
/etc/squid/msntauth.conf
/etc/squid/cachemgr.conf
/usr/squid/sbin/squid
/usr/squid/bin/squidclient
/usr/squid/bin/RunCache
/usr/squid/bin/RunAccel
/usr/squid/bin/squidclient
/usr/squid/bin/cossdump
/usr/squid/libexec/diskd-daemon
/usr/squid/libexec/pinger
/usr/squid/libexec/unlinkd
/usr/squid/libexec/squid_db_auth
/usr/squid/libexec/squid_kerb_auth
/usr/squid/libexec/squid_ldap_auth
/usr/squid/libexec/ncsa_auth
/usr/squid/libexec/yp_auth
/usr/squid/libexec/pam_auth
/usr/squid/libexec/getpwname_auth
/usr/squid/libexec/msnt_auth
/usr/squid/libexec/pop3.pl
/usr/squid/libexec/sasl_auth
/usr/squid/libexec/smb_auth.pl
/usr/squid/libexec/smb_auth
/usr/squid/libexec/smb_auth.sh
/usr/squid/libexec/ntlm_auth
/usr/squid/libexec/fakeauth_auth
/usr/squid/libexec/digest_ldap_auth
/usr/squid/libexec/digest_pw_check
/usr/squid/libexec/ip_user_chec
/usr/squid/libexec/squid_unix_group
/usr/squid/libexec/squid_ldap_group
/usr/squid/libexec/wbinfo_group.pl
/usr/squid/libexec/cachemgr.cgi
/usr/squid/share/mib.txt
/usr/squid/share/icons/
/usr/squid/share/errors/
/usr/squid/man/man8/
/var/squid/logs/
/var/squid/cache/
2.2. Versioning
The Squid follows a simple development model. The development and
stable versions coexist. There are three tags used to indicate the
state of a version. STABLE, PRE and DEVEL.[3]
DEVEL is the version that undergoes active development and addition
of features. When it matures it is tagged PRE as beta after which it
is tagged STABLE when the release approaches stability.
There are two active versions in existence now. Squid 2.6.STABLE16 and
Squid-3.0.PRE6. This case deals with Squid 2.6.STABLE16 alone.
( Referred to by Squid in the rest of this document)
2.3 Modules
The modules are compiled statically into Squid, thus each release of
Squid needs to recompile the modules that it supports.
2.4 Directory Naming and Structure
The proposed directory layout for Squid is
/usr/squid/
/bin
/sbin
/libexec
/share
/man/man8
/etc/squid/
/squid.conf
/mime.conf
/msntauth.conf
/cachemgr.conf
/var/squid/logs/
/var/squid/cache/
The detailed directory and file layout for Squid is provided in
Addendum 1.
3. Core Modules
These are the proposed (statically linked) modules enabled by initial
integration.
Asynchronous IO
CARP - Cache Array Routing Protocol
HTCP - Hyper Text Caching Protocol
Cache-Digests
WCCP Versions 1 and 2
Large cache and log file support
Delay pools
Arp Access control lists
SSL support
SNMP support
Forward via Database
Store IO with DISKD, UFS, AUFS and COSS (Different modes of Cache IO)
Authentication scheme with the following supported.
Basic with:
DB,NCSA,YP,LDAP,PAM,getpwnam,MSNT,POP3,
SASL,multi-domain-NTLM,SMB
NTLM with:
SMB,fakeauth
Digest with:
ldap, password
Negotiate with:
kerberose
Acl helpers :
ip_user,unix_group,ldap_group,wbinfo_group
We do not support Acl Helpers Session since it requires Berkeley DB 4 to
compile.
4. Squid Documentation.
Squid comes with generic documentation in man page format for squid.8
cachemgr.cgi.8, squid_db_auth.8, ncsa_auth.9, squid_ldap_auth.8,
pam_auth.8, squid_unix_group.8 and squid_ldap_group.8. These will be
placed in the /usr/squid/man/man8 directory as done by the canonical
distribution.
5. Squid Internationalization
Internationalization of error messages is provided by squid and the
localized error messages are provided in /usr/squid/share/errors
directory for each supported language.
6. Packaging and Delivery
We propose to package squid under SUNWsquid. Multiple versions
coexisting on the same machine is not anticipated since this is not
a development platform, and general usage pattern is to have a single
instance.
7. Squid Interfaces
7.1. Interface Stability
The Squid project has not changed the configuration file format from
the time it started. It is a plain text file with space separated key
and values. However, newer configuration keys and values have been
added in the releases.
Squid does not support loadable modules. Thus binary compatibility is
not relevant for Squid.
7.2. Imported Interfaces
Squid imports interfaces from
Basic security library (libbsm)
C library (libv)
Encryption/decryption library (libcrypt)
Dynamic linking library (libdl)
String pattern-matching library (libgen)
C math library (libm)
Message Digest library (libmd)
Multiple precision library (libmp)
Network services library (libnsl)
PAM (Pluggable Authentication Module) library (libpam)
POSIX threads library (libpthread)
Resolver library (libresolv)
POSIX.1b Realtime Extensions library (librt)
Simple authentication and security layer library (libsasl)
Service configuration facility library (libscf)
Security attributes database library (libsecdb)
Sockets library (libsocket)
Threads library (libthread)
Solaris Trusted Extensions library (libtsol)
SUNWcsl Core Solaris (libcryptoutil,libldap,libuutil)
SUNWpr Netscape Portable Runtime (libnspr4,libplc4,libplds4)
SUNWtls Network Security Services (libnss3,libsoftokn3,libssl3)
SUNWkrbu Kerberos version 5 support (mech_krb5)
SUNWopenssl-libraries OpenSSL Libraries (libcrypto,libssl)
SUNWcry (libcrypto_extra) (SUNWOpenssl
links to it.)
7.3. Exported Interfaces
NAME STABILITY NOTES
/usr/squid/sbin/squid Uncommitted Executable location
/usr/squid/bin/squidclient Uncommitted Executable location
/usr/squid/bin/RunCache Uncommitted Squid Watchdog
Script
/usr/squid/bin/RunAccel Uncommitted Squid Watchdog
Script
/usr/squid/bin/cossdump Uncommitted Executable location
/usr/squid/libexec/unlinkd Uncommitted Executable location
/usr/squid/libexec/cachemgr.cgi Uncommitted Executable script
location
/usr/squid/libexec/diskd-daemon Uncommitted Executable location
/usr/squid/libexec/pinger Uncommitted Executable location
/usr/squid/libexec/unlinkd Uncommitted Executable location
/usr/squid/libexec/squid_db_auth Uncommitted Executable script
location
/usr/squid/libexec/ncsa_auth Uncommitted Executable location
/usr/squid/libexec/yp_auth Uncommitted Executable location
/usr/squid/libexec/squid_ldap_auth Uncommitted Executable location
/usr/squid/libexec/pam_auth Uncommitted Executable location
/usr/squid/libexec/getpwname_auth Uncommitted Executable location
/usr/squid/libexec/msnt_auth Uncommitted Executable location
/usr/squid/libexec/pop3.pl Uncommitted Executable script
location
/usr/squid/libexec/smb_auth.pl Uncommitted Executable script
location
/usr/squid/libexec/smb_auth Uncommitted Executable location
/usr/squid/libexec/smb_auth.sh Uncommitted Executable script
location
/usr/squid/libexec/ntlm_auth Uncommitted Executable location
/usr/squid/libexec/fakeauth_auth Uncommitted Executable location
/usr/squid/libexec/digest_ldap_auth Uncommitted Executable location
/usr/squid/libexec/digest_pw_auth Uncommitted Executable location
/usr/squid/libexec/ip_user_check Uncommitted Executable location
/usr/squid/libexec/squid_unix_group Uncommitted Executable location
/usr/squid/libexec/squid_ldap_group Uncommitted Executable location
/usr/squid/libexec/wbinfo_group.pl Uncommitted Executable script
location
/usr/squid/libexec/cachemgr.cgi Uncommitted Executable script
location
/usr/squid/libexec/sasl_auth Uncommitted Executable location
/usr/squid/libexec/no_check.pl Uncommitted Executable script
location
/usr/squid/libexec/squid_kerb_auth Uncommitted Executable location
/etc/squid/squid.conf Uncommitted Squid Configuration
/etc/squid/mime.conf Uncommitted Additional
Configuration
/etc/squid/msntauth.conf Uncommitted Additional
Configuration
/etc/squid/cachemgr.conf Uncommitted Additional
Configuration
/usr/squid/man/man8/squid.8 Uncommitted Manual Page
/usr/squid/man/man8/cachemgr.cgi.8 Uncommitted Manual Page
/usr/squid/man/man8/squid_db_auth.8 Uncommitted Manual Page
/usr/squid/man/man8/ncsa_auth.8 Uncommitted Manual Page
/usr/squid/man/man8/squid_ldap_auth.8 Uncommitted Manual Page
/usr/squid/man/man8/pam_auth.8 Uncommitted Manual Page
/usr/squid/man/man8/squid_unix_group.8 Uncommitted Manual Page
/usr/squid/man/man8/squid_ldap_group.8 Uncommitted Manual Page
svc:/network/http:squid committed FMRI
/var/svc/manifest/network/http-squid.xml Project Private SMF Manifest
8. References
[1] http://www.squid-cache.org/Versions/
[2] http://www.squid-cache.org/
[3] http://www.squid-cache.org/Versions/
[4] http://sac.sfbay/arc/LSARC/2007/299/
================================================================
Addendum 1: Squid Integration Directory and File Structure.
1. The following files are included in the Squid integration:
/usr/squid
bin
RunCache
squidclient
cossdump
libexec
diskd-daemon
pinger
unlinkd
squid_db_auth
ncsa_auth
yp_auth
squid_ldap_auth
pam_auth
getpwname_auth
msnt_auth
pop3.pl
smb_auth.pl
smb_auth
smb_auth.sh
ntlm_auth
fakeauth_auth
digest_ldap_auth
digest_pw_auth
ip_user_check
squid_unix_group
squid_ldap_group
wbinfo_group.pl
cachemgr.cgi
sasl_auth
no_check.pl
squid_kerb_auth
sbin
squid
share
mib.txt
icons
anthony-binhex.gif
anthony-bomb.gif
anthony-box.gif
anthony-box2.gif
anthony-c.gif
anthony-compressed.gif
anthony-dir.gif
anthony-dirup.gif
anthony-dvi.gif
anthony-f.gif
anthony-image.gif
anthony-image2.gif
anthony-layout.gif
anthony-link.gif
anthony-movie.gif
anthony-pdf.gif
anthony-portal.gif
anthony-ps.gif
anthony-quill.gif
anthony-script.gif
anthony-sound.gif
anthony-tar.gif
anthony-tex.gif
anthony-text.gif
anthony-unknown.gif
anthony-xbm.gif
anthony-xpm.gif
errors
Armenian
Azerbaijani
Bulgarian
Catalan
Czech
Danish
Dutch
English
Estonian
Finnish
French
German
Greek
Hebrew
Hungarian
Italian
Japanese
Korean
Lithuanian
Polish
Portuguese
Romanian
Russian-1251
Russian-koi8-r
Serbian
Simplify_Chinese
Slovak
Spanish
Swedish
Traditional_Chinese
Turkish
man
man8
squid.8
cachemgr.cgi.8
squid_db_auth.8
ncsa_auth.8
squid_ldap_auth.8
pam_auth.8
squid_unix_group.8
squid_ldap_group.8
/etc/squid
squid.conf
mime.conf
msntauth.conf
cachemgr.conf
/var/squid/logs/
/var/squid/cache/
Under each language directories the following files reside
ERR_ACCESS_DENIED
ERR_CACHE_ACCESS_DENIED
ERR_CACHE_MGR_ACCESS_DENIED
ERR_CANNOT_FORWARD
ERR_CONNECT_FAIL
ERR_DNS_FAIL
ERR_FORWARDING_DENIED
ERR_FTP_DISABLED
ERR_FTP_FAILURE
ERR_FTP_FORBIDDEN
ERR_FTP_NOT_FOUND
ERR_FTP_PUT_CREATED
ERR_FTP_PUT_ERROR
ERR_FTP_PUT_MODIFIED
ERR_FTP_UNAVAILABLE
ERR_INVALID_REQ
ERR_INVALID_RESP
ERR_INVALID_URL
ERR_LIFETIME_EXP
ERR_NO_RELAY
ERR_ONLY_IF_CACHED_MISS
ERR_READ_ERROR
ERR_READ_TIMEOUT
ERR_SHUTTING_DOWN
ERR_SOCKET_FAILURE
ERR_TOO_BIG
ERR_UNSUP_REQ
ERR_URN_RESOLVE
ERR_WRITE_ERROR
ERR_ZERO_SIZE_OBJECT
{noformat}