7043529 move memcached to userland
authorMike Sullivan <Mike.Sullivan@Oracle.COM>
Tue, 10 May 2011 13:07:04 -0700
changeset 223 b9246653129d
parent 222 360c16309b43
child 224 b0ca638fab1b
7043529 move memcached to userland
components/memcached/Makefile
components/memcached/Solaris/auth_attr
components/memcached/Solaris/memcached
components/memcached/Solaris/memcached.1m
components/memcached/Solaris/memcached.xml
components/memcached/Solaris/prof_attr
components/memcached/memcached.license
components/memcached/memcached.p5m
components/memcached/patches/tests.patch
components/meta-packages/history/SUNWmemcached.p5m
transforms/defaults
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/memcached/Makefile	Tue May 10 13:07:04 2011 -0700
@@ -0,0 +1,64 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+include ../../make-rules/shared-macros.mk
+
+COMPONENT_NAME=		memcached
+COMPONENT_VERSION=	1.4.5
+COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
+COMPONENT_PROJECT_URL=	http://memcached.org/
+COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
+COMPONENT_ARCHIVE_HASH=	sha1:c7d6517764b82d23ae2de76b56c2494343c53f02
+COMPONENT_ARCHIVE_URL=	http://memcached.googlecode.com/files/$(COMPONENT_ARCHIVE)
+
+include ../../make-rules/prep.mk
+include ../../make-rules/configure.mk
+include ../../make-rules/ips.mk
+
+PATH=/usr/bin:/usr/gnu/bin:/usr/perl5/bin
+
+COMPONENT_PRE_CONFIGURE_ACTION = \
+    ($(CLONEY) $(SOURCE_DIR) $(@D))
+
+COMPONENT_TEST_TARGETS=	test
+
+studio_OPT = -xO5
+
+CONFIGURE_BINDIR.64 =	$(CONFIGURE_PREFIX)/lib/$(MACH64)
+CONFIGURE_OPTIONS.64 +=	--with-libevent=/usr/lib/${MACH64}
+CONFIGURE_OPTIONS +=	--enable-dtrace --disable-docs --disable-coverage
+CONFIGURE_OPTIONS +=	--localstatedir=/var
+CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)"
+
+# common targets
+build:		$(BUILD_64)
+
+install:	$(INSTALL_64)
+
+test:		$(TEST_64)
+
+BUILD_PKG_DEPENDENCIES =	$(BUILD_TOOLS)
+
+include ../../make-rules/depend.mk
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/memcached/Solaris/auth_attr	Tue May 10 13:07:04 2011 -0700
@@ -0,0 +1,2 @@
+solaris.smf.value.memcached:::Change Memcached value properties::
+solaris.smf.manage.memcached:::Manage Memcached service states::
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/memcached/Solaris/memcached	Tue May 10 13:07:04 2011 -0700
@@ -0,0 +1,55 @@
+#!/sbin/sh
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+. /lib/svc/share/smf_include.sh
+
+# SMF_FMRI is the name of the target service. This allows multiple instances
+# to use the same script.
+
+
+getproparg() {
+val=`svcprop -p "$1" memcached`
+[ -n "$val" ] && echo "$val"
+}
+
+MCOPTIONS="`getproparg memcached/options`"
+
+
+case "$1" in
+'start')
+/usr/lib/memcached -u noaccess $MCOPTIONS &
+;;
+
+'stop')
+smf_kill_contract $2 TERM 1 
+;;
+
+*)
+echo "Usage: $0 {start|stop}"
+exit 1
+;;
+
+esac
+#exit $SMF_EXIT_OK
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/memcached/Solaris/memcached.1m	Tue May 10 13:07:04 2011 -0700
@@ -0,0 +1,487 @@
+'\" te
+.TH memcached 1M "March 2008" "SunOS 5.11" "Administration Commands"
+.SH NAME
+memcached \- high performance memory object caching
+system
+.SH SYNOPSIS
+.LP
+.nf
+\fBmemcached [\fB-l\fR \fI<ip-addr>\fR] [\fB-d\fR] [\fB-u\fR \fI<username>\fR]
+[\fB-m\fR \fI<num>\fR] [\fB-c\fR \fI<num>\fR] [\fB-k\fR] [\fB-L \fR]
+[\fB-p\fR \fI<num>\fR] [\fB-U\fR \fI<num>\fR] [\fB-s\fR \fI<filename>\fR]
+[\fB-a\fR \fI<perms>\fR] [\fB-M\fR] [\fB-r\fR] [\fB-b\fR]
+[\fB-f\fR \fI<factor>\fR] [\fB-n\fR \fI<size>\fR] [\fB-h\fR] [\fB-v\fR] [\fB-vv\fR] [\fB-i\fR]
+[\fB-P\fR \fI<filename>\fR] [\fB-t\fR \fI<threads>\fR] [\fB-D\fR \fI<char>\fR]\fR
+.fi
+
+.SH DESCRIPTION
+.sp
+.LP
+\fBmemcached\fR is a flexible memory object caching daemon
+designed to alleviate database load in dynamic web applications by storing
+objects in memory.  It is based on \fBlibevent\fR to scale to
+any size needed, and is specifically optimized to avoid swapping and always
+use non-blocking I/O. This man page documents briefly the \fBmemcached\fR memory
+object caching daemon.
+.SH OPTIONS
+.sp
+.LP
+The options supported by the \fBmemcached\fR command are
+described below.
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-l\fR \fI<ip-addr>\fR\fR
+.ad
+.RS 17n
+.rt  
+Listen on \fI<ip-addr>\fR; default
+to \fBINADDR_ANY\fR. This is an important option to  consider
+as there is no other way to secure the installation. Binding to an  internal
+or fire walled network interface is suggested.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-d\fR\fR
+.ad
+.RS 17n
+.rt  
+Run memcached as a daemon.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-u\fR \fI<username>\fR\fR
+.ad
+.RS 17n
+.rt  
+Assume the identity of \fI<username>\fR only when run as a super user (root).
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-m\fR \fI<num>\fR\fR
+.ad
+.RS 17n
+.rt  
+Use the maximum \fI<num>\fR MB memory for object storage; the default is 64 MB.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-c\fR \fI<num>\fR\fR
+.ad
+.RS 17n
+.rt  
+Use the specified number of maximum simultaneous connections;
+the default is 1024.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-k\fR\fR
+.ad
+.RS 17n
+.rt  
+Lock down all paged memory.
+.sp
+Use this option with caution with large caches. For information about
+the configuration suggestions, see the README and the memcached home page.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-L\fR\fR
+.ad
+.RS 17n
+.rt  
+Preallocate memory and use large memory pages if possible.
+.sp
+This option will preallocate cache memory for object storage.
+See description of \fB-m\fR option for a specification of the size of the memory.
+If supported by the platform, large memory pages will be allocated.
+This should reduce number of TLB misses and increase performance.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-p\fR \fI<num>\fR\fR
+.ad
+.RS 17n
+.rt  
+Listen on the TCP port \fI<num>\fR\&.
+The default port is 11211. 
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-U\fR \fI<num>\fR\fR
+.ad
+.RS 17n
+.rt  
+Listen on the UDP port \fI<num>\fR\&.
+The default is 0, meaning that the UDP protocol is disabled.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-s\fR \fI<filename>\fR\fR
+.ad
+.RS 17n
+.rt  
+Unix socket path to listen on (disables listening support for TCP and UDP).
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-a\fR \fI<perms>\fR\fR
+.ad
+.RS 17n
+.rt  
+Permissions (in octal format) for Unix socket created with \fB-s\fR option.
+Default value is 0700.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-M\fR\fR
+.ad
+.RS 17n
+.rt  
+Disable automatic removal of items from the cache when out
+of memory. Additions will not be possible until adequate space is freed up.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-r\fR\fR
+.ad
+.RS 17n
+.rt  
+Raise the core file size limit to the maximum allowable.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-b\fR\fR
+.ad
+.RS 17n
+.rt  
+Run a managed instance.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-f\fR \fI<factor>\fR\fR
+.ad
+.RS 17n
+.rt  
+Use this option to specify \fI<factor>\fR as
+the multiplier for computing the sizes of memory chunks that items are stored
+in. A lower value may result in less wasted memory depending on the total
+amount of memory available and the distribution of item sizes. The default
+value is 1.25.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-n\fR \fI<size>\fR\fR
+.ad
+.RS 17n
+.rt  
+Allocate a minimum of \fI<size>\fR bytes
+for the item key, value, and flags. The default value is 48. If you have a
+lot of small keys and values, you can get a significant memory efficiency
+gain with a lower value. If you use a high chunk growth factor, that is \fB-f\fR option, you may want to increase the size to allow a bigger percentage
+of your items to fit in the most densely packed smallest chunks.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-h\fR\fR
+.ad
+.RS 17n
+.rt  
+Show the version of memcached and a summary of options.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-v\fR\fR
+.ad
+.RS 17n
+.rt  
+Be verbose during the event loop; print out errors and warnings.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-vv\fR\fR
+.ad
+.RS 17n
+.rt  
+Be even more verbose; same as \fB-v\fR option but
+also print client commands and  responses.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-i\fR\fR
+.ad
+.RS 17n
+.rt  
+Display \fBmemcached\fR and \fBlibevent\fR licenses.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-P\fR \fI<filename>\fR\fR
+.ad
+.RS 17n
+.rt  
+Print \fBpidfile\fR to the specified file.
+.LP
+Note - 
+.sp
+.RS 2
+This option can be used only when \fBmechached\fR is
+run as a daemon (\fB-d\fR option).
+.RE
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-t\fR \fI<threads>\fR\fR
+.ad
+.RS 17n
+.rt  
+Number of threads to use to process incoming requests. The default is 4.
+It is typically not useful to set this much higher than the number of CPU cores
+on the \fBmemcached\fR server.
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB-D\fR \fI<char>\fR\fR
+.ad
+.RS 17n
+.rt  
+Use the \fI<char>\fR as the delimiter
+between key prefixes and IDs. This is used for per-prefix statistics reporting.
+The default is \fB:\fR (colon). If this option is specified,
+statistics collection is turned on automatically; if not, then it can be turned
+on by sending the \fBstats detail on\fR command to the server.
+.RE
+
+.SH EXIT STATUS
+.sp
+.LP
+The following exit values are returned:
+.sp
+.ne 2
+.mk
+.na
+\fB\fB0\fR\fR
+.ad
+.RS 5n
+.rt  
+command executed successfully
+.RE
+
+.sp
+.ne 2
+.mk
+.na
+\fB\fB1\fR\fR
+.ad
+.RS 5n
+.rt  
+error in executing the command
+.RE
+
+.SH SERVICE MANAGEMENT FACILITY
+.sp
+.LP
+\fBmemcached\fR package for Solaris (\fBservice/memcached\fR)
+includes files necessary to register with the Service Management Facility
+described in \fISMF(5)\fR. The following procedure describes the steps to automate
+the service management using memcached.
+.RS +4
+.TP
+1.
+Add other parameters to be passed to the memcached service instance.
+.sp
+example: specify the server to use 1024 MB of memory
+.sp
+.in +2
+.nf
+example% svccfg
+svc:> select memcached
+svc:/application/database/memcached> setprop memcached/options=("-m" "1024")
+svc:/application/database/memcached> quit
+example% svcadm refresh memcached
+.fi
+.in -2
+
+.LP
+Note - 
+.sp
+.RS 2
+The arguments cannot be passed as a single string because of a limitation in \fIsvccfg\fR.
+.RE
+.RE
+.RS +4
+.TP
+2.
+Enable memcached .
+.sp
+.in +2
+.nf
+example% svcadm enable memcached 
+.fi
+.in -2
+
+The state of the service instance changes to \fBonline\fR,
+and the memcached service instance must be started:
+.sp
+.in +2
+.nf
+example% svcs memcached
+STATE          STIME    FMRI
+online          1:19:15 svc:/application/database/memcached:default
+.fi
+.in -2
+.sp
+
+.RE
+.RS +4
+.TP
+3.
+To disable shutdown and automatic restart of memcached service instance,
+.sp
+.in +2
+.nf
+example% svcadm disable memcached
+.fi
+.in -2
+
+.RE
+.SH USER AUTHORIZATIONS
+.sp
+.LP
+You can use \fBRBAC(5)\fR to authorize otherwise non-privileged users to manage
+\fBmemcached\fR services.
+To let a user named \fBmyuser\fR change \fBmemcached\fR value properties and
+manage \fBmemcached\fR service states, add the following line to
+\fB/etc/user_attr\fR:
+.sp
+.in +2
+.nf
+myuser::::type=role;profiles=Memcached Administration,All
+.fi
+.in -2
+.sp
+.RE
+.SH PACKAGE CONTENTS
+.sp
+.LP
+The \fBmemcached\fR package consists of the memcached server and
+man pages for the server. 
+.sp
+.LP
+Client libraries can be made available by installing other packages.
+.sp
+.LP
+The memcached server is based on the memcached open-source software
+available from http://www.danga.com/memcached/\&.
+.SH SECURITY
+.sp
+.LP
+When the memcached server is started, it listens for network requests
+on a TCP port and/or a UDP port. It is important for the security of the network
+that you protect this port, for example, by blocking access to this port in
+a firewall. 
+.sp
+.LP
+The default TCP port number to use is 11211. 
+.sp
+.LP
+You may use the \fB-p\fR option to set another TCP port number.
+There is no default UDP port number. You can use the \fB-U\fR option
+to set a UDP port number.
+.sp
+.LP
+If you are running memcached on a server with multiple network interfaces,
+you can restrict vulnerability by binding memcached to a single interface
+by using the \fB-l\fR option.
+.LP
+Caution - 
+.sp
+.RS 2
+Note that \fBmemcached\fR was designed for speed
+and not for security. There is no authentication of requests that go in to
+the memcached servers, and communication is not encrypted. The network that
+your memcached servers and clients run within should be safe-guarded against
+network attacks.
+.RE
+.SH SEE ALSO
+.sp
+.LP
+\fBlibmemcached(3libmemcached)\fR
+.LP
+Additional documentation (FAQ) can be found at http://www.eu.socialtext.net/memcached/index.cgi\&.
+.SH NOTES
+.sp
+.LP
+LICENSE
+.sp
+.LP
+The \fBmemcached\fR daemon is copyright Danga Interactive
+and is distributed under  the BSD license. \fBmemcached\fR clients
+are licensed separately.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/memcached/Solaris/memcached.xml	Tue May 10 13:07:04 2011 -0700
@@ -0,0 +1,82 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+<!--
+ Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
+
+ CDDL HEADER START
+
+ The contents of this file are subject to the terms of the
+ Common Development and Distribution License (the "License").
+ You may not use this file except in compliance with the License.
+
+ You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ or http://www.opensolaris.org/os/licensing.
+ See the License for the specific language governing permissions
+ and limitations under the License.
+
+ When distributing Covered Code, include this CDDL HEADER in each
+ file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ If applicable, add the following below this CDDL HEADER, with the
+ fields enclosed by brackets "[]" replaced with your own identifying
+ information: Portions Copyright [yyyy] [name of copyright owner]
+
+ CDDL HEADER END
+
+    NOTE:  This service manifest is not editable; its contents will
+    be overwritten by package or patch operations, including
+    operating system upgrade.  Make customizations in a different
+    file.
+-->
+
+<service_bundle type='manifest' name='memcached' >
+<service name='application/database/memcached' type='service' version='1' >
+<create_default_instance enabled='false' />
+
+
+   <dependency
+      name='network'
+      grouping='require_all'
+      restart_on='none'
+      type='service'>
+      <service_fmri value='svc:/milestone/network:default' />
+   </dependency>
+
+   <dependency
+      name='name-services'
+      grouping='require_all'
+      restart_on='none'
+      type='service'>
+      <service_fmri value='svc:/milestone/name-services:default' />
+   </dependency>
+
+   <exec_method 
+      type='method' 
+      name='start'
+      exec='/lib/svc/method/memcached start'
+      timeout_seconds='-1' />
+
+   <exec_method 
+      type='method' 
+      name='stop'
+      exec='/lib/svc/method/memcached stop %{restarter/contract}'
+      timeout_seconds='60' />
+
+    <property_group name='memcached' type='application'>
+       <propval name='options' type='astring' value='' />
+       <propval name='value_authorization' type='astring' value='solaris.smf.value.memcached' />
+       <propval name='action_authorization' type='astring' value='solaris.smf.manage.memcached' />
+    </property_group>
+
+    <stability value='Evolving' />
+
+    <template>
+      <common_name>
+         <loctext xml:lang='C'>memcached 1.4.5</loctext>
+      </common_name>
+      <documentation>
+         <manpage title='memcached' section='1m' manpath='/usr/share/man' />
+      </documentation>
+    </template>
+
+</service>
+</service_bundle>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/memcached/Solaris/prof_attr	Tue May 10 13:07:04 2011 -0700
@@ -0,0 +1,1 @@
+Memcached Administration:RO:::auths=solaris.smf.manage.memcached,solaris.smf.value.memcached
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/memcached/memcached.license	Tue May 10 13:07:04 2011 -0700
@@ -0,0 +1,30 @@
+Copyright (c) 2003, Danga Interactive, Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+
+    * Neither the name of the Danga Interactive nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/memcached/memcached.p5m	Tue May 10 13:07:04 2011 -0700
@@ -0,0 +1,71 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+<transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
+
+set name=pkg.fmri value=pkg:/service/memcached@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary value="The memcached memory object cache"
+set name=info.classification value="org.opensolaris.category.2008:Web Services/Application and Web Servers"
+set name=info.upstream_url value=$(COMPONENT_PROJECT_URL)
+set name=info.source_url value=$(COMPONENT_ARCHIVE_URL)
+set name=opensolaris.arc_url \
+    value=http://arc.opensolaris.org/caselog/LSARC/2009/067
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+license memcached.license license='BSD'
+
+dir path=etc
+dir path=etc/security
+dir path=etc/security/auth_attr.d
+dir path=etc/security/auth_attr.d
+dir path=etc/security/prof_attr.d
+dir path=etc/security/prof_attr.d
+dir path=lib
+dir path=lib/svc
+dir path=lib/svc/manifest
+dir path=lib/svc/manifest/application
+dir path=lib/svc/manifest/application/database
+dir path=lib/svc/method
+dir path=usr
+dir path=usr/lib
+dir path=usr/include
+dir path=usr/include/memcached
+dir path=usr/share
+dir path=usr/share/man
+dir path=usr/share/man/man1m
+file Solaris/auth_attr path=etc/security/auth_attr.d/memcached
+file Solaris/prof_attr path=etc/security/prof_attr.d/memcached
+file usr/lib/$(MACH64)/memcached path=usr/lib/memcached mode=0555
+file Solaris/memcached.xml \
+    path=lib/svc/manifest/application/database/memcached.xml
+file Solaris/memcached path=lib/svc/method/memcached
+file path=usr/include/memcached/protocol_binary.h
+file Solaris/memcached.1m path=usr/share/man/man1m/memcached.1m
+
+legacy pkg=SUNWmemcached \
+    desc="The memcached memory object cache (1.4.5)" \
+    name="memcached (usr)"
+
+legacy pkg=SUNWmemcachedr \
+    desc="The memcached memory object cache (1.4.1) (root components)" \
+    name="memcached (root)"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/memcached/patches/tests.patch	Tue May 10 13:07:04 2011 -0700
@@ -0,0 +1,15 @@
+--- memcached-1.4.5/Makefile.in.orig	Mon May  9 12:37:54 2011
++++ memcached-1.4.5/Makefile.in	Mon May  9 12:38:40 2011
+@@ -1194,9 +1194,9 @@
+ 	$(DTRACE) $(DTRACEFLAGS) -G -o memcached_debug_dtrace.o -s ${srcdir}/memcached_dtrace.d $(memcached_debug_OBJECTS)
+ 
+ test:	memcached-debug sizes testapp
+-	$(srcdir)/sizes
+-	$(srcdir)/testapp
+-	prove $(srcdir)/t
++	./sizes
++	./testapp
++	prove ./t
+ 	@if test `basename $(PROFILER)` = "gcov"; then \
+ 	  for file in memcached_debug-*.gc??; do \
+ 	    mv -f $$file `echo $$file | sed 's/memcached_debug-//'`; \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/meta-packages/history/SUNWmemcached.p5m	Tue May 10 13:07:04 2011 -0700
@@ -0,0 +1,29 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+set name=pkg.fmri value=pkg:/[email protected],5.11-0.133
+set name=pkg.renamed value=true
+
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+depend fmri=service/[email protected] type=require
--- a/transforms/defaults	Tue May 10 12:57:38 2011 -0700
+++ b/transforms/defaults	Tue May 10 13:07:04 2011 -0700
@@ -60,11 +60,8 @@
 #
 # SMF directories and files
 #
-<transform dir path=lib/svc/manifest$ -> default group sys>
-<transform dir path=lib/svc/manifest/application$ -> default group sys>
-<transform file path=lib/svc/manifest/application/.* -> default group sys>
-<transform dir path=lib/svc/manifest/network$ -> default group sys>
-<transform file path=lib/svc/manifest/network/.* -> default group sys>
+<transform dir path=lib/svc/manifest -> default group sys>
+<transform file path=lib/svc/manifest -> default group sys>
 <transform file path=lib/svc/method/.* -> default mode 0555>
 
 #