See in line comments. Bart Smaalders wrote: > I'm sponsoring the attached fast-track for Stefan Teleman. > The requested binding is patch/micro release, and the > stability levels are as noted in the document. > > Materials are in the case directory. > > This case times out on 3/28/2007. > > - Bart > > ------------------------------------------------------------------------ > > Including PCRE with Solaris > > Stefan Teleman <Stefan.Teleman at Sun.COM> > 15 March 2007 > > 1. Summary and motivation > > The inclusion of PHP5 has created a number of external library > dependency requirements. One of these dependencies is PCRE > [Perl-Compatible Regular Expressions] [1] [3]. > > According to PCRE's Home Page, "The PCRE library is a set of > functions that implement regular expression pattern matching > using the same syntax and semantics as Perl 5. PCRE has its own > native API, as well as a set of wrapper functions that correspond > to the POSIX regular expression API." [1] [2] > > PCRE is used by many open source projects, including Apache, PHP, > KDE, Postfix, Nmap, etc. The inclusion of PCRE in Solaris would > facilitate the integration of other open source projects depending > on PCRE. PCRE was originally written by Philip Hazel at Cambridge > University, UK. > > This FastTrack case proposes the integration of PCRE in Solaris. > > PCRE is an Open Source project, and is developed outside of SMI. > As such, the SFW Consolidation is the natural choice for PCRE > integration. > > This case seeks Micro/Patch Release Binding. > > 2. Technical issues > > 2.1. Key objects. > > /usr/bin/pcregrep > /usr/bin/pcretest > /usr/bin/pcre-config > > /usr/lib/libpcre.so.0.0.1 > /usr/lib/libpcre.so.0 -> libpcre.so.0.0.1 > /usr/lib/libpcre.so -> libpcre.so.0.0.1 > > /usr/lib/libpcrecpp.so.0.0.0 > /usr/lib/libpcrecpp.so.0 -> libpcrecpp.so.0.0.0 > /usr/lib/libpcrecpp.so -> libpcrecpp.so.0.0.0 > > /usr/lib/libpcreposix.so.0.0.0 > /usr/lib/libpcreposix.so.0 -> libpcreposix.so.0.0.0 > /usr/lib/libpcreposix.so -> libpcreposix.so.0.0.0 > What is the point of the multi-version names?
I believe ld
will
I think ld will bind to multi-version name. I don't think you want to
do this
on Solaris.
> /usr/include/pcre/pcre.h
> /usr/include/pcre/pcre_scanner.h
> /usr/include/pcre/pcre_stringpiece.h
> /usr/include/pcre/pcrecpp.h
> /usr/include/pcre/pcrecpparg.h
> /usr/include/pcre/pcreposix.h
>
> The original PCRE implementation installs header files under the
> ${PREFIX}/include location. For the purpose of Solaris integration,
> we propose to change the default header file installation location
> to /usr/include/pcre/*.h. The motivation for this change is avoidance
> of namespace pollution in /usr/include.
>
> /usr/share/man/man1/pcregrep.1
> /usr/share/man/man1/pcretest.1
> /usr/share/man/man3/pcre.3
>
> 2.2. Functionality
>
> PCRE implements library calls allowing Perl-like regular expression
> pattern matching from within C or C++. Prior to PCRE, Perl-compatible
> regular expressions and pattern matching were not available outside
> of Perl itself.
>
> PCRE's core functionality is provided by two executables [pcregrep
> and pcretest] and three shared libraries: libpcre.so.0.0.1,
> libpcrecpp.so.0.0.0 and libpcreposix.so.0.0.0.
>
> Key aspecs of PCRE's functionality are discussed below.
>
> pcregrep is a variant of grep which supports Perl-compatible re's.
>
> pcretest is a test harness program. It enables testing of RE pattern
> matching, without having to recompile a program.
>
> libpcre.so.0.0.1 implements the Perl-Compatible portion of PCRE. Perl
> Regular Expressions [perlre] are an implementation of Kleene Algebra
> applied to free text. Perl RE's differ from traditional UNIX RE or
> POSIX RE in their pattern matching syntax, by adding significantly
> more operators and operator modifiers to their algebra. PERL RE's
> inherit from UNIX and POSIX RE.
>
> libpcreposix.so.0.0.0 implements the POSIX-Compatible portion of PCRE.
> POSIX RE's extend the UNIX RE operator set, and simplify somewhat
> pattern matching syntax rules.
>
> libpcrecpp.so.0.0.0 is the C++ wrapper library around libpcre.so.0.0.1
> and libpcreposix.so.0.0.0. libpcrecpp.so implements two Classes:
> class RE and class RE_Options. These classes do not implement any
> additional functionality than what is provided by libpcre.so.0.0.1
> and libpcreposix.so.0.0.0.
>
> 3. Interfaces
>
> 3.1. Interface Stability
>
> PCRE is an Open Source project [1], developed and maintained external
> to SMI. PCRE makes no promises or guarantees about API or ABI
> compatibility between releases. Moreover, there have been several
> known cases of ABI breakage between different PCRE releases.
>
> 3.2. Imported interfaces
>
> libpcre.so.0.0.1 and libpcreposix.so.0.0.0 imports Standard C Library
> Interfaces. libpcrecpp.so.0.0.0 imports Standard C++ Library
> Interfaces, and depends on libCrun.so.1 and libCstd.so.1. No network
> library interfaces, or any other Solaris interfaces, are used by PCRE.
>
> NAME STABILITY NOTES
>
> C++ 5.3 Committed LSARC/2001/284
>
> 3.3. Exported interfaces
>
> NAME STABILITY NOTES
>
> SUNWpcre Uncommitted Package name
>
> /usr/bin/pcregrep Uncommitted Executable location
> /usr/bin/pcretest Uncommitted Executable location
>
> /usr/lib/libpcre.so.0.0.1 Uncommitted Shared library
> /usr/lib/libpcre.so.0 Uncommitted Symbolic link
> /usr/lib/libpcre.so Uncommitted Symbolic link
>
> /usr/lib/libpcreposix.so.0.0.0 Uncommitted Shared library
> /usr/lib/libpcreposix.so.0 Uncommitted Symbolic link
> /usr/lib/libpcre.so Uncommitted Symbolic link
>
> /usr/lib/libpcrecpp.so.0.0.0 Uncommitted Shared library
> /usr/lib/libpcrecpp.so.0 Uncommitted Symbolic link
> /usr/lib/libpcrecpp.so Uncommitted Symbolic link
>
> /usr/share/man/man1/pcregrep.1 Uncommitted Manual Page
> /usr/share/man/man1/pcretest.1 Uncommitted Manual Page
> /usr/share/man/man3/pcre.3 Uncommitted Manual Page
> /usr/share/man/man3/pcre_compile.3 Uncommitted Manual Page
> /usr/share/man/man3/pcre_compile2.3 Uncommitted Manual Page
> /usr/share/man/man3/pcre_config.3 Uncommitted Manual Page
> /usr/share/man/man3/pcre_copy_named_substring.3 Uncommitted
> Manual Page
> /usr/share/man/man3/pcre_copy_substring.3 Uncommitted Manual
> Page
> /usr/share/man/man3/pcre_dfa_exec.3 Uncommitted Manual Page
> /usr/share/man/man3/pcre_exec.3 Uncommitted Manual Page
> /usr/share/man/man3/pcre_free_substring.3 Uncommitted Manual
> Page
> /usr/share/man/man3/pcre_free_substring_list.3 Uncommitted Manual
> Page
> /usr/share/man/man3/pcre_fullinfo.3 Uncommitted Manual Page
> /usr/share/man/man3/pcre_get_named_substring.3 Uncommitted Manual
> Page
> /usr/share/man/man3/pcre_get_stringnumber.3 Uncommitted Manual
> Page
> /usr/share/man/man3/pcre_get_stringtable_entries.3 Uncommitted
> Manual Page
> /usr/share/man/man3/pcre_get_substring.3 Uncommitted Manual
> Page
> /usr/share/man/man3/pcre_get_substring_list.3 Uncommitted Manual
> Page
> /usr/share/man/man3/pcre_info.3 Uncommitted Manual Page
> /usr/share/man/man3/pcre_maketables.3 Uncommitted Manual Page
> /usr/share/man/man3/pcre_refcount.3 Uncommitted Manual Page
> /usr/share/man/man3/pcre_study.3 Uncommitted Manual Page
> /usr/share/man/man3/pcre_version.3 Uncommitted Manual Page
> /usr/share/man/man3/pcreapi.3 Uncommitted Manual Page
> /usr/share/man/man3/pcrebuild.3 Uncommitted Manual Page
> /usr/share/man/man3/pcrecallout.3 Uncommitted Manual Page
> /usr/share/man/man3/pcrecompat.3 Uncommitted Manual Page
> /usr/share/man/man3/pcrecpp.3 Uncommitted Manual Page
> /usr/share/man/man3/pcrematching.3 Uncommitted Manual Page
> /usr/share/man/man3/pcrepartial.3 Uncommitted Manual Page
> /usr/share/man/man3/pcrepattern.3 Uncommitted Manual Page
> /usr/share/man/man3/pcreperform.3 Uncommitted Manual Page
> /usr/share/man/man3/pcreposix.3 Uncommitted Manual Page
> /usr/share/man/man3/pcreprecompile.3 Uncommitted Manual Page
> /usr/share/man/man3/pcresample.3 Uncommitted Manual Page
> /usr/share/man/man3/pcrestack.3 Uncommitted Manual Page
>
Two things here...
By Solaris conventions, shouldn't these all be in man3pcre (or something
like that)?
Its a bit strange to see the actual man page in an interface table. Can
I read this as
that the interface defined on this page is what is being declared
Uncommitted?
> 7. References
>
> [1] http://www.pcre.org/
> [2] http://www.unix.org/version3/ieee_std.html
> [3] http://www.perl.com/doc/manual/html/pod/perlre.html
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.opensolaris.org/pipermail/opensolaris-arc/attachments/20070321/dcda6cd2/attachment.html>
